Changeset 340 for branches


Ignore:
Timestamp:
10/10/13 17:16:58 (6 years ago)
Author:
jls17
Message:
  • added special field infos for join, view and vendor forms to the json struct
  • filter logic uses the additional information to recreate the "Real Field" column after filtering
  • CWebUtil has a new function "GetRelativeURL" to get just the relative URL, not the full HTML a-tag
  • removed the parameter of CDocSchemaDetails::IsJoinViewOrVendorForm?. This information could be retrieved within the function so it's callable from anywhere in the class.
Location:
branches/work_304
Files:
5 edited

Legend:

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

    r339 r340  
    104104 
    105105                        // Add list of all fields to the page 
    106                         tabControl.AddTab("Fields", (IsJoinViewOrVendorForm(compSchema) ? this->AllFieldsSpecial() : this->AllFields()) ); 
     106                        tabControl.AddTab("Fields", (IsJoinViewOrVendorForm() ? this->AllFieldsSpecial() : this->AllFields()) ); 
    107107 
    108108                        // Add schemas properties (like Entrypoint-, Archiv- and Audit-settings) to the page 
     
    347347                CARFieldList* fields = schema.GetFields(); 
    348348                unsigned int fieldCount = fields->GetCount(); 
     349                bool isSpecialForm = IsJoinViewOrVendorForm(); 
     350 
    349351                for (unsigned int fieldIndex = 0; fieldIndex < fieldCount; ++fieldIndex) 
    350352                { 
     
    370372                        item.PushBack(field.GetLastChanged(), alloc); 
    371373                        item.PushBack(link, alloc); 
     374                         
     375                        // for special forms, we need some more details for the real-field column 
     376                        if (isSpecialForm) 
     377                        { 
     378                                switch (field.GetMapping().fieldType) 
     379                                { 
     380                                case AR_FIELD_JOIN: 
     381                                        { 
     382                                                if(field.GetFieldId() == 1) // RequestID 1 in Joinform = ReqId1 | ReqId2 
     383                                                { 
     384                                                        const ARCompoundSchema& compSchema = this->schema.GetCompound(); 
     385                                                        CARSchema schemaLeft(compSchema.u.join.memberA); 
     386                                                        CARSchema schemaRight(compSchema.u.join.memberB); 
     387 
     388                                                        CARField fldLeft(schemaLeft.GetInsideId(), 1); 
     389                                                        CARField fldRight(schemaRight.GetInsideId(), 1); 
     390 
     391                                                        CPageParams schemaLeftLink(PAGE_DETAILS, &schemaLeft); 
     392                                                        CPageParams schemaRightLink(PAGE_DETAILS, &schemaRight); 
     393                                                        CPageParams fldLeftLink(PAGE_DETAILS, &fldLeft); 
     394                                                        CPageParams fldRightLink(PAGE_DETAILS, &fldRight); 
     395 
     396                                                        string leftFieldName = fldLeft.GetName(); 
     397                                                        string leftFieldLink = CWebUtil::GetRelativeURL(rootLevel, fldLeftLink); 
     398                                                        string leftSchemaName = schemaLeft.GetName(); 
     399                                                        string leftSchemaLink = CWebUtil::GetRelativeURL(rootLevel, schemaLeftLink); 
     400                                                         
     401                                                        string rightFieldName = fldRight.GetName(); 
     402                                                        string rightFieldLink = CWebUtil::GetRelativeURL(rootLevel, fldRightLink); 
     403                                                        string rightSchemaName = schemaRight.GetName(); 
     404                                                        string rightSchemaLink = CWebUtil::GetRelativeURL(rootLevel, schemaRightLink); 
     405 
     406                                                        Value leftNameVal(leftFieldName.c_str(), leftFieldName.size(), alloc); 
     407                                                        Value leftLinkVal(leftFieldLink.c_str(), leftFieldLink.size(), alloc); 
     408                                                        Value leftSchemaVal(leftSchemaName.c_str(), leftSchemaName.size(), alloc); 
     409                                                        Value leftSchemaLinkVal(leftSchemaLink.c_str(), leftSchemaLink.size(), alloc); 
     410 
     411                                                        Value rightNameVal(rightFieldName.c_str(), rightFieldName.size(), alloc); 
     412                                                        Value rightLinkVal(rightFieldLink.c_str(), rightFieldLink.size(), alloc); 
     413                                                        Value rightSchemaVal(rightSchemaName.c_str(), rightSchemaName.size(), alloc); 
     414                                                        Value rightSchemaLinkVal(rightSchemaLink.c_str(), rightSchemaLink.size(), alloc); 
     415 
     416                                                        item.PushBack(leftNameVal, alloc); 
     417                                                        item.PushBack(leftLinkVal, alloc); 
     418                                                        item.PushBack(leftSchemaVal, alloc); 
     419                                                        item.PushBack(leftSchemaLinkVal, alloc); 
     420 
     421                                                        item.PushBack(rightNameVal, alloc); 
     422                                                        item.PushBack(rightLinkVal, alloc); 
     423                                                        item.PushBack(rightSchemaVal, alloc); 
     424                                                        item.PushBack(rightSchemaLinkVal, alloc); 
     425                                                } 
     426                                                else 
     427                                                { 
     428                                                        if(field.GetMapping().u.join.realId > 0) 
     429                                                        { 
     430                                                                const ARCompoundSchema& compSchema = this->schema.GetCompound(); 
     431 
     432                                                                string baseSchemaName = (field.GetMapping().u.join.schemaIndex == 0 ? compSchema.u.join.memberA : compSchema.u.join.memberB); 
     433                                                                 
     434                                                                CARSchema baseSchema(baseSchemaName); 
     435                                                                CPageParams baseSchemaPage(PAGE_DETAILS, &baseSchema); 
     436 
     437                                                                CARField baseField(baseSchema.GetInsideId(), field.GetMapping().u.join.realId); 
     438                                                                CPageParams baseFieldPage(PAGE_DETAILS, &baseField); 
     439 
     440                                                                string baseFieldName = baseField.GetName(); 
     441                                                                string baseFieldLink = CWebUtil::GetRelativeURL(rootLevel, baseFieldPage); 
     442                                                                string baseSchemaLink = CWebUtil::GetRelativeURL(rootLevel, baseSchemaPage); 
     443                                                                 
     444                                                                Value baseFileNameVal(baseFieldName.c_str(), baseFieldName.size(), alloc); 
     445                                                                Value baseFileLinkVal(baseFieldLink.c_str(), baseFieldLink.size(), alloc); 
     446                                                                Value baseSchemaNameVal(baseSchemaName.c_str(), baseSchemaName.size(), alloc); 
     447                                                                Value baseSchemaLinkVal(baseSchemaLink.c_str(), baseSchemaLink.size(), alloc); 
     448 
     449                                                                item.PushBack(baseFileNameVal, alloc); 
     450                                                                item.PushBack(baseFileLinkVal, alloc); 
     451                                                                item.PushBack(baseSchemaNameVal, alloc); 
     452                                                                item.PushBack(baseSchemaLinkVal, alloc); 
     453 
     454                                                                //strmTmp << this->pInside->LinkToField(tmpBaseSchema, field.GetMapping().u.join.realId, rootLevel) << "&nbsp;" << MenuSeparator << "&nbsp;" << this->pInside->LinkToSchema(tmpBaseSchema, rootLevel); 
     455                                                        } 
     456                                                        //else 
     457                                                        //      strmTmp << "&nbsp;"; 
     458                                                } 
     459                                        } 
     460                                        break; 
     461                                case AR_FIELD_VIEW: 
     462                                        { 
     463                                                string val = field.GetMapping().u.view.fieldName; 
     464                                                Value itemVal(val.c_str(), val.size(), alloc); 
     465                                                item.PushBack(itemVal, alloc); 
     466                                        } 
     467                                        break; 
     468                                case AR_FIELD_VENDOR: 
     469                                        { 
     470                                                string val = field.GetMapping().u.vendor.fieldName; 
     471                                                Value itemVal(val.c_str(), val.size(), alloc); 
     472                                                item.PushBack(itemVal, alloc); 
     473                                        } 
     474                                        break; 
     475                                } 
     476 
     477                        } 
    372478 
    373479                        document.PushBack(item, alloc); 
     
    378484 
    379485                out << endl << "<script type=\"text/javascript\">" << endl; 
    380                 out << "var schemaFieldList = "; document.Accept(writer); out << ";" << endl; 
     486                out << "var schemaFieldList = "; document.Accept(writer); out << ";"; 
     487                if (isSpecialForm) 
     488                { 
     489                        string type; 
     490                        switch (this->schema.GetCompound().schemaType) 
     491                        { 
     492                        case AR_SCHEMA_VIEW: 
     493                                type = "view"; 
     494                                break; 
     495                        case AR_SCHEMA_VENDOR: 
     496                                type = "vendor"; 
     497                                break; 
     498                        case AR_SCHEMA_JOIN: 
     499                                type = "join"; 
     500                                break; 
     501                        } 
     502                        if (!type.empty()) 
     503                        { 
     504                                out << "schemaFieldManager.setRenderer(\"" << type << "\");"; 
     505                        } 
     506                } 
     507                out << endl; 
    381508                out << "</script>" << endl; 
    382509        } 
     
    24262553} 
    24272554 
    2428 bool CDocSchemaDetails::IsJoinViewOrVendorForm(const ARCompoundSchema &compSchema) 
    2429 { 
    2430         switch(compSchema.schemaType) 
     2555bool CDocSchemaDetails::IsJoinViewOrVendorForm() 
     2556{ 
     2557        switch(this->schema.GetCompound().schemaType) 
    24312558        { 
    24322559        case AR_SCHEMA_JOIN: 
  • branches/work_304/doc/DocSchemaDetails.h

    r337 r340  
    8383        bool InEscalList(string objName); 
    8484        bool IsSchemaInWFConnectStruct(const ARWorkflowConnectStruct& wfCS); 
    85         bool IsJoinViewOrVendorForm(const ARCompoundSchema &compSchema); 
     85        bool IsJoinViewOrVendorForm(); 
    8686        list<string> uniqueAlList; 
    8787        list<string> uniqueFilterList; 
  • branches/work_304/output/WebUtil.cpp

    r197 r340  
    410410        return strmTmp.str(); 
    411411} 
     412 
     413string CWebUtil::GetRelativeURL(int rootLevel, const CPageParams& page) 
     414{ 
     415        return RootPath(rootLevel) + page->GetFullFileName(); 
     416} 
  • branches/work_304/output/WebUtil.h

    r171 r340  
    8888 
    8989                static string LinkToHelper(string name, int objectCount, const CPageParams& page, string image, int rootLevel); 
     90                static string GetRelativeURL(int rootLevel, const CPageParams& page); 
    9091 
    9192                static string webpageFileExtension; 
  • branches/work_304/res/schema_page.js

    r338 r340  
    33    $('#MainObjectTabCtrl div[id^="tab"]').addClass("inner-tab"); 
    44}); 
     5 
     6var schemaFieldManager = { 
     7    view_vendor_RFR: function(row) { 
     8        return (schemaFieldList[row].length > 7 ? schemaFieldList[row][7] : ""); 
     9    }, 
     10    join_RFR: function(row) { 
     11        var pos = 7; 
     12        var result = ""; 
     13        for (pos; pos + 3 < schemaFieldList[row].length; pos += 4) { 
     14            if (result.length > 0) { result += "<br/>"; } 
     15            result += "<a href='" + schemaFieldList[row][pos + 1] + "'>" + schemaFieldList[row][pos] + "</a>&nbsp;-&gt;&nbsp;<img width=16 height=16 alt='schema.gif' src='../../img/schema.gif'/><a href='" + schemaFieldList[row][pos + 3] + "'>" + schemaFieldList[row][pos + 2] + "</a>"; 
     16        } 
     17        if (result) return result; 
     18        return (schemaFieldList[row].length > 7 ? schemaFieldList[row][7] : ""); 
     19    }, 
     20    renderRealField: function(row) { 
     21        if (this.realFieldRenderer == null) { return ""; } 
     22        return this.realFieldRenderer(row); 
     23    }, 
     24    realFieldRenderer: null, 
     25    setRenderer: function(type) { 
     26        if (type === "view" || type === "vendor") 
     27            this.realFieldRenderer = this.view_vendor_RFR; 
     28        if (type === "join") 
     29            this.realFieldRenderer = this.join_RFR; 
     30    } 
     31}; 
    532 
    633$('document').ready(function() { 
     
    1138        window.location.hash = ui.tab.hash; 
    1239    }); 
    13     $(".clearable").on('propertychange keyup input paste', 'input.data_field', function(e){ 
    14         if (e.keyCode == 27 /*Escape-Key*/) { $(this).val(''); } 
    15         $(this).stopTime().oneTime(300, function() { 
    16            $("#execFieldFilter").click(); 
     40    $("#fieldNameFilter").keyup(function() { 
     41        $(this).stopTime(); 
     42        $(this).oneTime(300, function() { 
     43            $("#execFieldFilter").click(); 
    1744        }); 
    18         }); 
     45    }); 
    1946 
    2047    $("#execFieldFilter").click(function() { 
     
    3461                if (schemaFieldList[i][1].match(r) || (numSearch == 0 && ("" + schemaFieldList[i][0]).match(search))) { 
    3562                    matches++; 
    36                     table.append("<tr><td><a href='" + schemaFieldList[i][6] + "'>" + schemaFieldList[i][1] + "</a></td><td>" + schemaFieldList[i][0] + "</td><td>" + ARFieldDataTypeToString(schemaFieldList[i][2]) + (hasRealFieldColumn ? "<td></td>" : "") + "<td>" + schemaFieldList[i][3] + "</td><td>" + schemaFieldList[i][4] + "</td><td>" + schemaFieldList[i][5] + "</td></tr>"); 
     63                    table.append("<tr><td><a href='" + schemaFieldList[i][6] + "'>" + schemaFieldList[i][1] + "</a></td><td>" + schemaFieldList[i][0] + "</td><td>" + ARFieldDataTypeToString(schemaFieldList[i][2]) + (hasRealFieldColumn ? "<td>" + schemaFieldManager.renderRealField(i) + "</td>" : "") + "<td>" + schemaFieldList[i][3] + "</td><td>" + schemaFieldList[i][4] + "</td><td>" + schemaFieldList[i][5] + "</td></tr>"); 
    3764                } 
    3865            }); 
Note: See TracChangeset for help on using the changeset viewer.