Ignore:
Timestamp:
03/04/14 16:07:50 (6 years ago)
Author:
jls17
Message:
  • added filtering support to all container list pages
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/work_304/doc/DocMain.cpp

    r433 r435  
    12141214        try 
    12151215        { 
    1216                 int rootLevel = file->GetRootLevel(); 
    1217                 CContainerTable tbl(*this->pInside); 
     1216                rootLevel = file->GetRootLevel(); 
     1217                CContainerTable tbl(*this->pInside, false); 
    12181218 
    12191219                unsigned int cntCount = this->pInside->containerList.GetCount(); 
     
    12211221                {        
    12221222                        CARContainer cont(cntIndex); 
     1223                        bool bInsert = false; 
    12231224 
    12241225#if AR_CURRENT_API_VERSION >= AR_API_VERSION_764 
     
    12291230                        if (cont.GetType() == nType)    // the type must match 
    12301231                        { 
    1231                                 objCount++; 
    1232                                 bool bInsert = false; 
    12331232                                if(searchChar == "*")  //All objecte 
    12341233                                { 
     
    12581257                                if(bInsert) 
    12591258                                { 
    1260                                         tbl.AddRow(cont, rootLevel); 
     1259                                        objCount++; 
    12611260                                } 
    12621261                        } 
     
    12681267 
    12691268                        stringstream strmTmp; 
    1270                         strmTmp << CWebUtil::LinkToContainer(tbl.NumRows(), rootLevel, nType); 
     1269                        strmTmp << "<span id='containerListResultCount'></span>" << CWebUtil::LinkToContainer(objCount, rootLevel, nType); 
     1270                         
     1271                        if (searchChar == "*") 
     1272                        { 
     1273                                webPage.GetReferenceManager() 
     1274                                        .AddScriptReference("img/object_list.js") 
     1275                                        .AddScriptReference("img/containerList.js") 
     1276                                        .AddScriptReference("img/jquery.timers.js") 
     1277                                        .AddScriptReference("img/jquery.address.min.js"); 
     1278 
     1279                                ContainerListJson(strmTmp, nType); 
     1280                                strmTmp << CreateContainerFilterControl() << endl; 
     1281                        } 
     1282 
    12711283                        strmTmp << ShortMenu(searchChar, file, objCountPerLetter); 
    1272                          
    12731284                        tbl.SetDescription(strmTmp.str()); 
    12741285                        webPage.AddContent(tbl.Print()); 
    12751286 
    1276                         webPage.AddContent("(!) No Active Link / Filter \"CallGuide\" Action uses this Guide."); 
     1287                        if (nType == ARCON_GUIDE || nType == ARCON_FILTER_GUIDE) 
     1288                        { 
     1289                                webPage.AddContent("(!) No Active Link / Filter \"CallGuide\" Action uses this Guide."); 
     1290                        } 
    12771291 
    12781292                        webPage.SaveInFolder(file->GetPath()); 
     
    12841298        } 
    12851299        return objCount; 
     1300} 
     1301 
     1302void CDocMain::ContainerListJson(std::ostream &strm, int nType) 
     1303{ 
     1304        Document document; 
     1305        Document::AllocatorType &alloc = document.GetAllocator(); 
     1306        document.SetArray(); 
     1307 
     1308        unsigned int containerCount = this->pInside->containerList.GetCount(); 
     1309        for (unsigned int containerIndex = 0; containerIndex < containerCount; ++containerIndex) 
     1310        {        
     1311                CARContainer container(containerIndex); 
     1312 
     1313                if (container.GetType() != nType) 
     1314                        continue; 
     1315 
     1316#if AR_CURRENT_API_VERSION >= AR_API_VERSION_764 
     1317                if (pInside->appConfig.bOverlaySupport && !IsVisibleObject(container)) 
     1318                        continue; 
     1319#endif 
     1320 
     1321                CPageParams containerDetailPage(PAGE_DETAILS, &container); 
     1322 
     1323                // create a new json row and make it an array 
     1324                Value containerRow; 
     1325                containerRow.SetArray(); 
     1326 
     1327                // now build the needed temporary variables 
     1328                string strName = container.GetName(); 
     1329                string strModifiedDate = CUtil::DateTimeToString(container.GetTimestamp()); 
     1330                string strLink = CWebUtil::GetRelativeURL(rootLevel, containerDetailPage); 
     1331 
     1332                // build the values 
     1333                Value valName(strName.c_str(), static_cast<SizeType>(strName.size()), alloc); 
     1334                Value valModifiedDate(strModifiedDate.c_str(), static_cast<SizeType>(strModifiedDate.size()), alloc); 
     1335                Value valLink(strLink.c_str(), static_cast<SizeType>(strLink.size()), alloc); 
     1336 
     1337                // add everything to the row 
     1338                containerRow.PushBack(valName, alloc); 
     1339                containerRow.PushBack(valModifiedDate, alloc); 
     1340                containerRow.PushBack(container.GetLastChanged(), alloc); 
     1341                containerRow.PushBack(valLink, alloc); 
     1342 
     1343                document.PushBack(containerRow, alloc); 
     1344        } 
     1345 
     1346        GenericWriteStream output(strm); 
     1347        Writer<GenericWriteStream> writer(output); 
     1348 
     1349        strm << endl << "<script type=\"text/javascript\">" << endl; 
     1350        strm << "var containerList = "; document.Accept(writer); strm << ";"; 
     1351        strm << "var rootLevel = " << rootLevel << ";"; 
     1352        strm << "var containerType = " << nType << ";"; 
     1353        strm << endl; 
     1354        strm << "</script>" << endl; 
    12861355} 
    12871356 
     
    19902059} 
    19912060 
     2061string CDocMain::CreateContainerFilterControl() 
     2062{ 
     2063        stringstream content; 
     2064        content << "<div>" 
     2065                << CreateStandardFilterControl("containerFilter") 
     2066        << "</div>"; 
     2067        return content.str(); 
     2068} 
     2069 
    19922070void CDocMain::SchemaListJson(std::ostream &strm) 
    19932071{ 
Note: See TracChangeset for help on using the changeset viewer.