Changeset 412


Ignore:
Timestamp:
02/18/14 12:14:09 (6 years ago)
Author:
jls17
Message:
  • added filtering support to the activelink list page
Location:
branches/work_304
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • branches/work_304/CMakeLists.txt

    r403 r412  
    285285        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/schema_page.js ${CMAKE_BINARY_DIR}/img 
    286286        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/arshelper.js ${CMAKE_BINARY_DIR}/img 
     287        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/actlinkList.js ${CMAKE_BINARY_DIR}/img 
    287288        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/style.css ${CMAKE_BINARY_DIR}/img 
    288289        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/jquery/jquery-ui-custom.css ${CMAKE_BINARY_DIR}/img 
  • branches/work_304/doc/DocMain.cpp

    r401 r412  
    231231        try 
    232232        { 
    233                 int rootLevel = file->GetRootLevel(); 
     233                rootLevel = file->GetRootLevel(); 
    234234 
    235235                CAlTable tbl(*this->pInside); 
     
    246246                                continue; 
    247247#endif 
    248  
    249                         objCount++; 
    250248 
    251249                        if(searchChar == "*")  //All objecte 
     
    272270                        if(bInsert) 
    273271                        { 
    274                                 tbl.AddRow(alIdx, rootLevel); 
    275                         } 
    276                 } 
    277  
    278                 if (tbl.NumRows() > 0 || searchChar == "*")  
     272                                objCount++; 
     273                        } 
     274                } 
     275 
     276                if (tbl.NumRows() > 0 || searchChar == "*") 
    279277                { 
    280278                        CWebPage webPage(file->GetFileName(), "Active Link List", rootLevel, this->pInside->appConfig); 
    281  
    282279                        stringstream strmTmp; 
    283                         strmTmp << CWebUtil::LinkToActiveLinkIndex(tbl.NumRows(), rootLevel) << ShortMenu(searchChar, file, objCountPerLetter); 
    284  
     280 
     281                        strmTmp << "<span id='actlinkListFilterResultCount'></span>" << CWebUtil::LinkToActiveLinkIndex(objCount, rootLevel); 
     282                         
     283                        if (searchChar == "*") 
     284                        { 
     285                                webPage.GetReferenceManager() 
     286                                        .AddScriptReference("img/actlinkList.js") 
     287                                        .AddScriptReference("img/jquery.timers.js") 
     288                                        .AddScriptReference("img/jquery.address.min.js"); 
     289 
     290                                ActiveLinkListJson(strmTmp); 
     291                                strmTmp << CreateActlinkFilterControl() << endl; 
     292                        } 
     293 
     294                        strmTmp << ShortMenu(searchChar, file, objCountPerLetter); 
    285295                        tbl.SetDescription(strmTmp.str()); 
    286296                        webPage.AddContent(tbl.Print()); 
     
    294304        } 
    295305        return objCount; 
     306} 
     307 
     308void CDocMain::ActiveLinkListJson(ostream &strm) 
     309{ 
     310        Document document; 
     311        Document::AllocatorType &alloc = document.GetAllocator(); 
     312        document.SetArray(); 
     313 
     314        unsigned int actlinkCount = this->pInside->alList.GetCount(); 
     315        for (unsigned int actlinkIndex = 0; actlinkIndex < actlinkCount; ++actlinkIndex) 
     316        {        
     317                CARActiveLink actlink(actlinkIndex); 
     318                 
     319#if AR_CURRENT_API_VERSION >= AR_API_VERSION_764 
     320                        if (pInside->appConfig.bOverlaySupport && !IsVisibleObject(actlink)) 
     321                                continue; 
     322#endif 
     323 
     324                        CARProplistHelper props(&actlink.GetPropList()); 
     325                        CPageParams actlinkDetailPage(PAGE_DETAILS, &actlink); 
     326 
     327                        // create a new json row and make it an array 
     328                        Value actlinkRow; 
     329                        actlinkRow.SetArray(); 
     330 
     331                        // now build the needed temporary variables 
     332                        string strName = actlink.GetName(); 
     333                        string strModifiedDate = CUtil::DateTimeToString(actlink.GetTimestamp()); 
     334                        string strLink = CWebUtil::GetRelativeURL(rootLevel, actlinkDetailPage); 
     335                        string strExecuteOn = actlink.GetExecuteOn(true, &props); 
     336 
     337                        // build the values 
     338                        Value valName(strName.c_str(), static_cast<SizeType>(strName.size()), alloc); 
     339                        Value valModifiedDate(strModifiedDate.c_str(), static_cast<SizeType>(strModifiedDate.size()), alloc); 
     340                        Value valLink(strLink.c_str(), static_cast<SizeType>(strLink.size()), alloc); 
     341                        Value valExecuteOn(strExecuteOn.c_str(), static_cast<SizeType>(strExecuteOn.size()), alloc); 
     342 
     343                        // add everything to the row 
     344                        actlinkRow.PushBack(valName, alloc); 
     345                        actlinkRow.PushBack(actlink.GetEnabled(), alloc); 
     346                        actlinkRow.PushBack(actlink.GetGroupList().numItems, alloc); 
     347                        actlinkRow.PushBack(actlink.GetOrder(), alloc); 
     348                        actlinkRow.PushBack(valExecuteOn, alloc); 
     349                        actlinkRow.PushBack(actlink.GetIfActions().numItems, alloc); 
     350                        actlinkRow.PushBack(actlink.GetElseActions().numItems, alloc); 
     351                        actlinkRow.PushBack(valModifiedDate, alloc); 
     352                        actlinkRow.PushBack(actlink.GetLastChanged(), alloc); 
     353                        actlinkRow.PushBack(valLink, alloc); 
     354 
     355                        // add the row to the document 
     356                        document.PushBack(actlinkRow, alloc); 
     357        } 
     358 
     359        GenericWriteStream output(strm); 
     360        Writer<GenericWriteStream> writer(output); 
     361 
     362        strm << endl << "<script type=\"text/javascript\">" << endl; 
     363        strm << "var alList = "; document.Accept(writer); strm << ";"; 
     364        strm << "var rootLevel = " << rootLevel << ";"; 
     365        strm << endl; 
     366        strm << "</script>" << endl; 
    296367} 
    297368 
     
    16261697} 
    16271698 
     1699string CDocMain::CreateStandardFilterControl(const string &inputControlId) 
     1700{ 
     1701        stringstream content; 
     1702        content << "<span class='clearable'><label for='" << inputControlId << "'>Filter: </label><input id='" << inputControlId << "' class='data_field' type='text' /></span><button style='visibility:hidden' id='exec" << inputControlId << "' class></button>"; 
     1703        return content.str(); 
     1704} 
     1705 
    16281706string CDocMain::CreateSchemaFilterControl() 
    16291707{ 
    16301708        stringstream content;    
    16311709        content << "<div>"  
    1632                 << "<span class='clearable'><input id='formNameFilter' class='data_field' type='text' /></span><button id='execFormFilter' class>Filter</button> &nbsp;&nbsp;&nbsp; " 
     1710                << CreateStandardFilterControl("formFilter") << " &nbsp;&nbsp;&nbsp; " 
    16331711                << "<span class='multiFilter' id='multiFilter'>Restrict results to: " 
    16341712                << "<input id='typeFilterRegular' type='checkbox' value='1'/><label for='typeFilterRegular'>&nbsp;Regular</label>" 
     
    16411719        << "</div>"; 
    16421720 
     1721        return content.str(); 
     1722} 
     1723 
     1724string CDocMain::CreateActlinkFilterControl() 
     1725{ 
     1726        stringstream content; 
     1727        content << "<div>" 
     1728                << CreateStandardFilterControl("actlinkFilter") 
     1729        << "</div>"; 
    16431730        return content.str(); 
    16441731} 
  • branches/work_304/doc/DocMain.h

    r385 r412  
    7272 
    7373        static string ShortMenu(string curCharacter, const CPageParams &curPage, std::vector<int>& objCountPerLetter); 
     74         
     75        static string CreateStandardFilterControl(const string &inputControlId); 
    7476        static string CreateSchemaFilterControl(); 
     77        static string CreateActlinkFilterControl(); 
     78 
    7579        void SchemaListJson(std::ostream &strm); 
     80        void ActiveLinkListJson(std::ostream &strm); 
    7681}; 
  • branches/work_304/output/AlTable.cpp

    r133 r412  
    3434        tbl.AddColumn(0, "Changed"); 
    3535        tbl.AddColumn(0, "By"); 
     36 
     37        tbl.SetEmptyMessage(""); 
    3638} 
    3739 
Note: See TracChangeset for help on using the changeset viewer.