Changeset 461 for branches


Ignore:
Timestamp:
03/14/14 03:14:35 (6 years ago)
Author:
jls17
Message:
  • added filtering support to the roles-page
Location:
branches/work_304
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • branches/work_304/ARInside.cpp

    r458 r461  
    952952 
    953953 
    954         // role count per first char 
    955         vector<int> roleObjCount; roleObjCount.resize(38); 
    956  
    957954        //Role List 
    958         docMain->RoleList("*", roleObjCount); 
    959         for (unsigned int i = 0; i < strValue.size(); ++i) 
    960         {                
    961                 docMain->RoleList(std::string(1, strValue.at(i)), roleObjCount); 
    962         }        
     955        docMain->RoleList(); 
    963956 
    964957        //Role Details 
  • branches/work_304/ARInsideLib.vcproj

    r458 r461  
    17221722                                        /> 
    17231723                                </FileConfiguration> 
     1724                        </File> 
     1725                        <File 
     1726                                RelativePath=".\res\roleList.js" 
     1727                                > 
    17241728                        </File> 
    17251729                        <File 
  • branches/work_304/CMakeLists.txt

    r459 r461  
    294294        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/imageList.js ${CMAKE_BINARY_DIR}/img 
    295295        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/groupList.js ${CMAKE_BINARY_DIR}/img 
     296        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/roleList.js ${CMAKE_BINARY_DIR}/img 
    296297        COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res/style.css ${CMAKE_BINARY_DIR}/img 
    297298        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

    r458 r461  
    11711171} 
    11721172 
    1173 void CDocMain::RoleList(string searchChar, std::vector<int>& objCountPerLetter) 
    1174 { 
    1175         unsigned int page = (unsigned int)searchChar[0]; 
    1176         CPageParams file(page, AR_STRUCT_ITEM_XML_ROLE); 
     1173void CDocMain::RoleList() 
     1174{ 
     1175        CPageParams file(PAGE_OVERVIEW, AR_STRUCT_ITEM_XML_ROLE); 
    11771176 
    11781177        try 
     
    11801179                int rootLevel = file->GetRootLevel(); 
    11811180                CRoleTable tbl(*this->pInside); 
     1181                LetterFilterControl letterFilter; 
    11821182 
    11831183                unsigned int roleCount = this->pInside->roleList.GetCount(); 
     
    11861186                        CARRole role(roleIndex); 
    11871187 
    1188                         bool bInsert = false; 
    1189                         if(searchChar == "*")  //All objecte 
    1190                         { 
    1191                                 // the first call to this function holds always "*" as search char. That's the 
    1192                                 // best time to sum up the object count per letter. 
    1193                                 string firstChar = role.GetNameFirstChar(); 
    1194                                 if (firstChar.empty()) firstChar = "*"; 
    1195                                 int index = CARObject::GetFirstCharIndex(firstChar[0]); 
    1196                                 ++(objCountPerLetter[index]); 
    1197                                 bInsert = true; 
    1198                         } 
    1199                         else if(searchChar == "#") 
    1200                         { 
    1201                                 if(!role.NameStandardFirstChar()) 
    1202                                 { 
    1203                                         bInsert = true; 
    1204                                 } 
    1205                         } 
    1206                         else 
    1207                         { 
    1208                                 if(role.GetNameFirstChar() == searchChar) 
    1209                                 { 
    1210                                         bInsert = true; 
    1211                                 } 
    1212                         } 
    1213  
    1214                         if(bInsert) 
    1215                         {        
    1216                                 tbl.AddRow(role, rootLevel); 
    1217                         } 
    1218                 } 
    1219  
    1220                 if (tbl.NumRows() > 0 || searchChar == "*") 
    1221                 { 
    1222                         CWebPage webPage(file->GetFileName(), "Role List", rootLevel, this->pInside->appConfig); 
    1223  
    1224                         stringstream strmTmp; 
    1225                         strmTmp << CWebUtil::LinkToRoleIndex(tbl.NumRows(), rootLevel) << ShortMenu(searchChar, file, objCountPerLetter); 
    1226  
    1227                         tbl.SetDescription(strmTmp.str()); 
    1228                         webPage.AddContent(tbl.Print()); 
    1229  
    1230                         webPage.SaveInFolder(file->GetPath()); 
    1231                 } 
    1232         } 
    1233         catch(exception& e) 
    1234         { 
    1235                 cout << "EXCEPTION GroupList: " << e.what() << endl; 
     1188                        letterFilter.IncStartLetterOf(role); 
     1189                        tbl.AddRowJson(role, rootLevel); 
     1190                } 
     1191                if (roleCount > 0) 
     1192                { 
     1193                        tbl.RemoveEmptyMessageRow(); 
     1194                } 
     1195 
     1196                CWebPage webPage(file->GetFileName(), "Role List", rootLevel, this->pInside->appConfig); 
     1197 
     1198                webPage.GetReferenceManager() 
     1199                        .AddScriptReference("img/object_list.js") 
     1200                        .AddScriptReference("img/roleList.js") 
     1201                        .AddScriptReference("img/jquery.timers.js") 
     1202                        .AddScriptReference("img/jquery.address.min.js"); 
     1203 
     1204                stringstream strmTmp; 
     1205                strmTmp << "<span id='roleListFilterResultCount'></span>" << CWebUtil::LinkToRoleIndex(roleCount, rootLevel); 
     1206                strmTmp << CreateRoleFilterControl(); 
     1207                strmTmp << letterFilter; 
     1208                strmTmp << tbl; 
     1209                webPage.AddContent(strmTmp.str()); 
     1210 
     1211                webPage.SaveInFolder(file->GetPath()); 
     1212        } 
     1213        catch(exception& e) 
     1214        { 
     1215                cout << "EXCEPTION RoleList: " << e.what() << endl; 
    12361216        } 
    12371217} 
     
    18101790} 
    18111791 
     1792string CDocMain::CreateRoleFilterControl() 
     1793{ 
     1794        stringstream content; 
     1795        content << "<div>" 
     1796                << CreateStandardFilterControl("roleFilter", "seach by name or id") 
     1797        << "</div>"; 
     1798        return content.str(); 
     1799} 
     1800 
    18121801void CDocMain::SchemaListJson(std::ostream &strm) 
    18131802{ 
  • branches/work_304/doc/DocMain.h

    r458 r461  
    5151 
    5252        void GroupList(); 
    53         void RoleList(string searchChar, std::vector<int>& objCountPerLetter); 
     53        void RoleList(); 
    5454        void UserList(string searchChar, std::vector<int>& objCountPerLetter); 
    5555 
     
    8787        static string CreateImageFilterControl(); 
    8888        static string CreateGroupFilterControl(); 
     89        static string CreateRoleFilterControl(); 
    8990 
    9091private: 
  • branches/work_304/output/RoleTable.cpp

    r189 r461  
    1919 
    2020using namespace OUTPUT; 
     21using namespace rapidjson; 
    2122 
    2223CRoleTable::CRoleTable(CARInside &arIn) 
     
    4647        this->tbl.AddRow(tblRow); 
    4748} 
     49 
     50void CRoleTable::AddRowJson(CARRole &role, int rootLevel) 
     51{ 
     52        if (!role.Exists()) return; 
     53 
     54        CARContainer app(role.GetApplicationName()); 
     55 
     56        CPageParams roleDetailPage(PAGE_DETAILS, &role); 
     57        CPageParams appDetailPage(PAGE_DETAILS, &app); 
     58        Document::AllocatorType &alloc = doc.GetAllocator(); 
     59 
     60        Value roleRow; 
     61        roleRow.SetArray(); 
     62 
     63        // now build the needed temporary variables 
     64        string strName = role.GetName(); 
     65        string strAppName = role.GetApplicationName(); 
     66        string strModifiedDate = CUtil::DateTimeToString(role.GetTimestamp()); 
     67        string strLink = CWebUtil::GetRelativeURL(rootLevel, roleDetailPage); 
     68        string strAppLink = (app.Exists() ? CWebUtil::GetRelativeURL(rootLevel, appDetailPage) : ""); 
     69 
     70        Value valName(strName.c_str(), static_cast<SizeType>(strName.size()), alloc); 
     71        Value valAppName(strAppName.c_str(), static_cast<SizeType>(strAppName.size()), alloc); 
     72        Value valModifiedDate(strModifiedDate.c_str(), static_cast<SizeType>(strModifiedDate.size()), alloc); 
     73        Value valLink(strLink.c_str(), static_cast<SizeType>(strLink.size()), alloc); 
     74        Value valAppLink(strAppLink.c_str(), static_cast<SizeType>(strAppLink.size()), alloc); 
     75 
     76        // add everything to the row 
     77        roleRow.PushBack(role.GetRoleId(), alloc); 
     78        roleRow.PushBack(valName, alloc); 
     79        roleRow.PushBack(valAppName, alloc); 
     80        roleRow.PushBack(valModifiedDate, alloc); 
     81        roleRow.PushBack(role.GetLastChanged(), alloc); 
     82        roleRow.PushBack(valLink, alloc); 
     83        roleRow.PushBack(valAppLink, alloc); 
     84 
     85        // add the row to the document 
     86        doc.PushBack(roleRow, alloc);    
     87 
     88} 
  • branches/work_304/output/RoleTable.h

    r190 r461  
    3232 
    3333                void AddRow(CARRole &role, int rootLevel); 
    34                 void AddRow(int roleId, int rootLevel); 
     34                void AddRowJson(CARRole &role, int rootLevel); 
    3535        }; 
    3636} 
  • branches/work_304/res/arshelper.js

    r440 r461  
    113113 
    114114function getIcon(rootLevel, type, subtype) { 
    115     var alt = ""; 
     115    var alt = ""; var width=16; var height=16; 
    116116    switch (type) { 
    117117        case 1: alt = "schema.gif"; break; 
     
    128128            }; break; 
    129129        case 17: alt = "image.gif"; break; 
     130                case 500: alt = "user.gif"; break; 
     131                case 501: alt = "group.gif"; break; 
     132                case 502: alt = "doc.gif"; width=15; height=10; break; 
    130133        default: return ""; 
    131134    }; 
     
    133136    for (i = 0; i < rootLevel; i++) { src += "../"; } 
    134137    src += "img/" + alt; 
    135     return $("<img>").attr("width", 16).attr("height", 16).attr("alt", alt).attr("src", src); 
     138    return $("<img>").attr("width", width).attr("height", height).attr("alt", alt).attr("src", src); 
    136139} 
    137140 
     
    160163        } 
    161164} 
     165 
     166function ARGroupType(type) { 
     167        switch(type) { 
     168                case 1: return "View"; 
     169                case 2: return "Change"; 
     170                default: return "None"; 
     171        } 
     172} 
     173 
     174function ARGroupCategory(cat) { 
     175        switch(cat) { 
     176                case 0: return "Regular"; 
     177                case 1: return "Dynamic"; 
     178                case 2: return "Computed"; 
     179                default: return "None"; 
     180        } 
     181} 
  • branches/work_304/res/object_list.js

    r439 r461  
    4040        var list = window[this.tableId]; 
    4141    var search = $('#' + this.filterId).val().replace(/ +/g, " ").replace(/ /g, ".*"); 
    42     var numSearch = search.search("^\\d+$"); 
     42    var numSearch = search.search("^-?\\d+$"); 
    4343    var maxMatch = this.maxMatches; 
    4444    var lastMatches = 0; 
Note: See TracChangeset for help on using the changeset viewer.