Changeset 458 for branches


Ignore:
Timestamp:
03/10/14 16:27:09 (6 years ago)
Author:
jls17
Message:
  • added filtering-support to the group-list-page
Location:
branches/work_304
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • branches/work_304/ARInside.cpp

    r456 r458  
    934934        } 
    935935 
    936         // group count per first char 
    937         vector<int> grpObjCount; grpObjCount.resize(38); 
    938936 
    939937        //Group List 
    940         docMain->GroupList("*", grpObjCount); 
    941         for (unsigned int i = 0; i < strValue.size(); ++i) 
    942         {                
    943                 docMain->GroupList(std::string(1, strValue.at(i)), grpObjCount); 
    944         }        
    945  
     938        docMain->GroupList(); 
    946939 
    947940        //Group Details 
  • branches/work_304/ARInsideLib.vcproj

    r455 r458  
    15611561                                        /> 
    15621562                                </FileConfiguration> 
     1563                        </File> 
     1564                        <File 
     1565                                RelativePath=".\res\groupList.js" 
     1566                                > 
    15631567                        </File> 
    15641568                        <File 
  • branches/work_304/CMakeLists.txt

    r455 r458  
    293293        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/containerList.js ${CMAKE_BINARY_DIR}/img 
    294294        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/imageList.js ${CMAKE_BINARY_DIR}/img 
     295        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/groupList.js ${CMAKE_BINARY_DIR}/img 
    295296        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/style.css ${CMAKE_BINARY_DIR}/img 
    296297        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

    r456 r458  
    12371237} 
    12381238 
    1239 void CDocMain::GroupList(string searchChar, std::vector<int>& objCountPerLetter) 
    1240 { 
    1241         unsigned int page = (unsigned int)searchChar[0]; 
    1242         CPageParams file(page, AR_STRUCT_ITEM_XML_GROUP); 
     1239void CDocMain::GroupList() 
     1240{ 
     1241        CPageParams file(PAGE_OVERVIEW, AR_STRUCT_ITEM_XML_GROUP); 
    12431242 
    12441243        try 
     
    12461245                int rootLevel = file->GetRootLevel(); 
    12471246                CGroupTable tbl(*this->pInside); 
     1247                LetterFilterControl letterFilter; 
    12481248 
    12491249                unsigned int groupCount = pInside->groupList.GetCount(); 
     
    12511251                {        
    12521252                        CARGroup grp(groupIndex); 
    1253  
    1254                         bool bInsert = false; 
    1255                         if(searchChar == "*")  //All objects 
    1256                         { 
    1257                                 // the first call to this function holds always "*" as search char. That's the 
    1258                                 // best time to sum up the object count per letter. 
    1259                                 string firstChar = grp.GetNameFirstChar(); 
    1260                                 if (firstChar.empty()) firstChar = "*"; 
    1261                                 int index = CARObject::GetFirstCharIndex(firstChar[0]); 
    1262                                 ++(objCountPerLetter[index]); 
    1263                                 bInsert = true; 
    1264                         } 
    1265                         else if(searchChar == "#") 
    1266                         { 
    1267                                 if(!grp.NameStandardFirstChar()) 
    1268                                 { 
    1269                                         bInsert = true; 
    1270                                 } 
    1271                         } 
    1272                         else 
    1273                         { 
    1274                                 if(grp.GetNameFirstChar() == searchChar) 
    1275                                 { 
    1276                                         bInsert = true; 
    1277                                 } 
    1278                         } 
    1279  
    1280                         if(bInsert) 
    1281                         {        
    1282                                 tbl.AddRow("", grp.GetGroupId(), rootLevel); 
    1283                         } 
    1284                 } 
    1285  
    1286                 if (tbl.NumRows() > 0 || searchChar == "*") 
    1287                 { 
    1288                         CWebPage webPage(file->GetFileName(), "Group List", rootLevel, this->pInside->appConfig); 
    1289  
    1290                         stringstream strmTmp; 
    1291                         strmTmp << CWebUtil::LinkToGroupIndex(tbl.NumRows(), rootLevel) << ShortMenu(searchChar, file, objCountPerLetter); 
    1292  
    1293                         tbl.SetDescription(strmTmp.str()); 
    1294                         webPage.AddContent(tbl.Print()); 
    1295  
    1296                         webPage.SaveInFolder(file->GetPath()); 
    1297                 } 
     1253                        letterFilter.IncStartLetterOf(grp); 
     1254                        tbl.AddRowJson(grp, rootLevel); 
     1255                } 
     1256                if (groupCount > 0) 
     1257                { 
     1258                        tbl.RemoveEmptyMessageRow(); 
     1259                } 
     1260 
     1261                CWebPage webPage(file->GetFileName(), "Group List", rootLevel, this->pInside->appConfig); 
     1262 
     1263                webPage.GetReferenceManager() 
     1264                        .AddScriptReference("img/object_list.js") 
     1265                        .AddScriptReference("img/groupList.js") 
     1266                        .AddScriptReference("img/jquery.timers.js") 
     1267                        .AddScriptReference("img/jquery.address.min.js"); 
     1268 
     1269                stringstream strmTmp; 
     1270                strmTmp << "<span id='groupListFilterResultCount'></span>" << CWebUtil::LinkToGroupIndex(groupCount, rootLevel); 
     1271                strmTmp << CreateGroupFilterControl() << endl; 
     1272                strmTmp << letterFilter; 
     1273                strmTmp << tbl; 
     1274                webPage.AddContent(strmTmp.str()); 
     1275 
     1276                webPage.SaveInFolder(file->GetPath()); 
    12981277        } 
    12991278        catch(exception& e) 
     
    18161795} 
    18171796 
     1797string CDocMain::CreateGroupFilterControl() 
     1798{ 
     1799        stringstream content; 
     1800        content << "<div>" 
     1801                << CreateStandardFilterControl("groupFilter", "seach by name or id") << " &nbsp;&nbsp;&nbsp; " 
     1802                << "<span class='multiFilter' id='multiFilter'>Restrict results to: " 
     1803                << "<input id='typeFilterRegular' type='checkbox' value='0'/><label for='typeFilterRegular'>&nbsp;Regular</label>" 
     1804                << "<input id='typeFilterDynamic' type='checkbox' value='1'/><label for='typeFilterDynamic'>&nbsp;Dynamic</label>" 
     1805                << "<input id='typeFilterComputed' type='checkbox' value='2'/><label for='typeFilterComputed'>&nbsp;Computed</label>" 
     1806                << " <button id='typeFilterNone'>Clear All</button>" 
     1807                << "</span>" 
     1808        << "</div>"; 
     1809        return content.str(); 
     1810} 
     1811 
    18181812void CDocMain::SchemaListJson(std::ostream &strm) 
    18191813{ 
  • branches/work_304/doc/DocMain.h

    r457 r458  
    5050        unsigned int ContainerList(int nType, string title); 
    5151 
    52         void GroupList(string searchChar, std::vector<int>& objCountPerLetter); 
     52        void GroupList(); 
    5353        void RoleList(string searchChar, std::vector<int>& objCountPerLetter); 
    5454        void UserList(string searchChar, std::vector<int>& objCountPerLetter); 
     
    8686        static string CreateContainerFilterControl(); 
    8787        static string CreateImageFilterControl(); 
     88        static string CreateGroupFilterControl(); 
    8889 
    8990private: 
  • branches/work_304/output/GroupTable.cpp

    r190 r458  
    2121 
    2222using namespace OUTPUT; 
     23using namespace rapidjson; 
    2324 
    2425CGroupTable::CGroupTable(CARInside &arIn) 
     
    112113        }        
    113114} 
     115 
     116void CGroupTable::AddRowJson(CARGroup &group, int rootLevel) 
     117{ 
     118        if (!group.Exists()) return; 
     119 
     120        CPageParams groupDetailPage(PAGE_DETAILS, &group); 
     121        Document::AllocatorType &alloc = doc.GetAllocator(); 
     122 
     123        Value groupRow; 
     124        groupRow.SetArray(); 
     125 
     126        // now build the needed temporary variables 
     127        string strName = group.GetName(); 
     128        string strModifiedDate = CUtil::DateTimeToString(group.GetTimestamp()); 
     129        string strLink = CWebUtil::GetRelativeURL(rootLevel, groupDetailPage); 
     130 
     131        Value valName(strName.c_str(), static_cast<SizeType>(strName.size()), alloc); 
     132        Value valModifiedDate(strModifiedDate.c_str(), static_cast<SizeType>(strModifiedDate.size()), alloc); 
     133        Value valLink(strLink.c_str(), static_cast<SizeType>(strLink.size()), alloc); 
     134 
     135        // add everything to the row 
     136        groupRow.PushBack((unsigned int)group.GetGroupId(), alloc); 
     137        groupRow.PushBack(valName, alloc); 
     138        groupRow.PushBack(group.GetType(), alloc); 
     139        groupRow.PushBack(group.GetCategory(), alloc); 
     140        groupRow.PushBack(valModifiedDate, alloc); 
     141        groupRow.PushBack(group.GetLastChanged(), alloc); 
     142        groupRow.PushBack(valLink, alloc); 
     143 
     144        // add the row to the document 
     145        doc.PushBack(groupRow, alloc);   
     146} 
  • branches/work_304/output/GroupTable.h

    r58 r458  
    2929 
    3030                void AddRow(string appRefName, int id, int rootLevel); 
     31                void AddRowJson(CARGroup &group, int rootLevel); 
    3132        private: 
    3233                void AddGroupRow(string appRefName, int groupId, int rootLevel); 
Note: See TracChangeset for help on using the changeset viewer.