Changeset 664


Ignore:
Timestamp:
10/01/14 11:54:09 (3 years ago)
Author:
jls17
Message:
  • merged in revisions r654-r662 from branch work_312
Location:
branches/work_320
Files:
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/work_320

  • branches/work_320/ARInside.cpp

    r634 r664  
    6969///////// 
    7070// version information block 
    71 #define VERSION "3.1.1" 
     71#define VERSION "3.1.2" 
    7272#if defined(_DEBUG) 
    7373#define VERSION_STR VERSION "." SVN_REV_STR " Debug" 
     
    250250        { 
    251251                InitFileNamingStrategy(); 
     252#ifdef ARINSIDE_ENABLE_ZLIB_SUPPORT 
    252253                if (appConfig.bGZCompression) 
    253254                        WriteHTAccess(); 
     255#endif 
    254256        } 
    255257 
  • branches/work_320/ARInsideTest.vcproj

    r605 r664  
    679679                        > 
    680680                </File> 
     681                <File 
     682                        RelativePath=".\test\TinyXmlTests.cpp" 
     683                        > 
     684                </File> 
    681685        </Files> 
    682686        <Globals> 
  • branches/work_320/AppConfig.cpp

    r624 r664  
    130130 
    131131        // now configure the environment 
     132#ifdef ARINSIDE_ENABLE_ZLIB_SUPPORT 
    132133        if (bGZCompression) 
    133134                CWebUtil::webpageFileExtension = CWebUtil::HtmlGZPageSuffix(); 
    134135        else 
     136#endif 
    135137                CWebUtil::webpageFileExtension = CWebUtil::HtmlPageSuffix(); 
    136138 
  • branches/work_320/CMakeLists.txt

    r541 r664  
    7575CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/FileSystemUtilTest.h.in ${CMAKE_CURRENT_BINARY_DIR}/FileSystemUtilTest.h) 
    7676 
    77 ADD_DEFINITIONS(-DAR_STRICT_ANSI -D_CRT_SECURE_NO_DEPRECATE) 
     77ADD_DEFINITIONS(-DAR_STRICT_ANSI -D_CRT_SECURE_NO_DEPRECATE -DARINSIDE_ENABLE_ZLIB_SUPPORT) 
    7878IF(ARINSIDE_BETA) 
    7979        ADD_DEFINITIONS(-D_ARINSIDE_BETA) 
  • branches/work_320/RELEASE_NOTES.txt

    r629 r664  
    44E - Enhancement 
    55D - Defect fixed 
     6 
     72014-10-01 
     8[3.1.2] 
     9E - added some more details for fields and vuis in verbose logging 
     10E - added chunk-loading for user, groups and roles in case the row cout is limited by Max-Entries-Per-Query 
     11 
     12D - TR/DB field-prefix was missing in qualifications (#138) 
     13D - small fix in verbose logging (regarding activelink count) 
     14D - the GZCompression option in the settings.ini file wasn't working none-windows platforms (#140) 
     15D - an exception was thrown if the command passed to the processForm method did have only one parameter (#142) 
     16D - fixed a crash in case a webservice isn't attached to any form 
     17D - fixed a crash if a field in a join form is pointing to a deleted field in one of the join-members (#143) 
     18 
    619 
    7202014-09-01 
  • branches/work_320/doc/DocActionSetFieldsHelper.cpp

    r585 r664  
    1919#include "DocAllMatchingIdsTable.h" 
    2020#include "../core/ARAssignHelper.h" 
     21#include "../output/ObjNotFound.h" 
    2122 
    2223CDocActionSetFieldsHelper::CDocActionSetFieldsHelper(CARInside &arInside, CARServerObject &arServerObject, const string& objAttachedToSchemaName, const ARSetFieldsActionStruct& sFieldStruct, int structItemType, IfElseState ifElseMode, int numAction, int rootLevel) 
     
    210211                                        TiXmlDocument inputXML; 
    211212                                        inputXML.Parse(setFieldsStruct.fieldList.fieldAssignList[0].assignment.u.filterApi->inputValues[9].u.value.u.charVal, 0, TIXML_DEFAULT_ENCODING); 
     213 
     214                                        // TODO: this is just a quick and dirty workarround, which might work in some but not all cases. See test/TinyXmlTests.cpp for 
     215                                        //       more details. Full UTF-8 support might be needed for a real solution. 
     216                                        if (inputXML.Error()) 
     217                                        { 
     218                                                cout << "WARN: parsing input xml of filter '" << obj.GetName() << "' failed with: " << inputXML.ErrorDesc() << "!" << endl;                                              
     219                                        } 
     220 
    212221                                        TiXmlHandle inputHandle(&inputXML); 
    213222                                        TiXmlNode *element = inputHandle.FirstChild("arDocMapping").FirstChild("formMapping").ToNode(); 
     
    216225                                        tblInputMappingList.AddColumn(30, "Element"); 
    217226                                        tblInputMappingList.AddColumn(70, "Field"); 
     227 
    218228                                        input << processMappingXML(element, "", tblInputMappingList, "", WMM_INPUT); 
    219229                                        input << tblInputMappingList; 
     230                                        if (inputXML.Error()) 
     231                                        { 
     232                                                ObjNotFound notFound(input); 
     233                                                notFound << "<p>Parsing webservice input mapping failed! " << inputXML.ErrorDesc() << " (" << inputXML.ErrorRow() << "," << inputXML.ErrorCol() << ")" << " Mapping might be incomplete!" << "</p>"; 
     234                                                notFound.End(); 
     235                                        } 
    220236                                        writer << "<BR/>"; 
    221237                                        writer << "Input Mapping: " << input.str() << "<BR/>"; 
     
    230246                                        TiXmlDocument outputXML; 
    231247                                        outputXML.Parse(setFieldsStruct.fieldList.fieldAssignList[0].assignment.u.filterApi->inputValues[10].u.value.u.charVal, 0, TIXML_DEFAULT_ENCODING); 
     248 
     249                                        if (outputXML.Error()) 
     250                                        { 
     251                                                cout << "WARN: parsing output xml of filter '" << obj.GetName() << "' failed with: " << outputXML.ErrorDesc() << "!" << endl; 
     252                                        } 
     253 
    232254                                        TiXmlHandle outputHandle(&outputXML); 
    233255                                        TiXmlNode *element = outputHandle.FirstChild("arDocMapping").FirstChild("formMapping").ToNode(); 
     
    239261                                        output << processMappingXML(element, "", tblOutputMappingList, "", WMM_OUTPUT); 
    240262                                        output << tblOutputMappingList; 
     263                                        if (outputXML.Error()) 
     264                                        { 
     265                                                ObjNotFound notFound(output); 
     266                                                notFound << "<p>Parsing webservice output mapping failed! " << outputXML.ErrorDesc() << " (" << outputXML.ErrorRow() << "," << outputXML.ErrorCol() << ")" << " Mapping might be incomplete!" << "</p>"; 
     267                                                notFound.End(); 
     268                                        } 
    241269                                        writer << "Output Mapping: " << output.str(); 
    242270                                } 
     
    311339        { 
    312340        case TiXmlNode::ELEMENT: 
     341#ifdef _DEBUG 
     342                { 
     343                        const TiXmlElement *pEl = pParent->ToElement(); 
     344                        cout << "<" << pEl->Value() << endl; 
     345                        const TiXmlAttribute *pAttr = pEl->FirstAttribute(); 
     346                        for (; pAttr != NULL; pAttr = pAttr->Next()) 
     347                        { 
     348                                cout << "  Name: " << pAttr->Name() << " -- Value: " << pAttr->Value() << endl; 
     349                        } 
     350                        cout << ">" << endl; 
     351                } 
     352#endif 
    313353                if (strcmp("element",pParent->Value()) == 0) 
    314354                { 
    315                         sParent = pParent->ToElement()->Attribute("name"); 
     355                        const char* name = pParent->ToElement()->Attribute("name"); 
     356                        if (name) 
     357                                sParent = name; 
     358                        else 
     359                                sParent.clear(); 
    316360                } 
    317361                else if (strcmp("formMapping",pParent->Value()) == 0) 
    318362                { 
    319                         form = pParent->FirstChild("form")->ToElement()->Attribute("formName"); 
     363                        const char* formName = pParent->FirstChild("form")->ToElement()->Attribute("formName"); 
     364                        if (formName) 
     365                                form = formName; 
     366                        else 
     367                                form.clear(); 
    320368                } 
    321369                else if (strcmp("fieldMapping",pParent->Value()) == 0) 
    322370                { 
    323                         int fieldID = atoi(pParent->ToElement()->Attribute("arFieldId")); 
     371                        const char* arFieldId = pParent->ToElement()->Attribute("arFieldId"); 
     372                        int fieldID = 0; 
     373                        if (arFieldId) 
     374                                fieldID = atoi(arFieldId); 
    324375 
    325376                        CTableRow row("cssStdRow"); 
  • branches/work_320/doc/DocSchemaDetails.cpp

    r618 r664  
    277277                                                        CPageParams fldRightLink(PAGE_DETAILS, &fldRight); 
    278278 
    279                                                         string leftFieldName = fldLeft.GetName(); 
    280                                                         string leftFieldLink = CWebUtil::GetRelativeURL(rootLevel, fldLeftLink); 
    281                                                         string leftSchemaName = schemaLeft.GetName(); 
    282                                                         string leftSchemaLink = CWebUtil::GetRelativeURL(rootLevel, schemaLeftLink); 
     279                                                        string leftFieldName; 
     280                                                        string leftFieldLink; 
     281                                                        if (fldLeft.Exists()) 
     282                                                        { 
     283                                                                leftFieldName = fldLeft.GetName(); 
     284                                                                leftFieldLink = CWebUtil::GetRelativeURL(rootLevel, fldLeftLink); 
     285                                                        } 
     286                                                        else 
     287                                                        { 
     288                                                                leftFieldName = "1"; 
     289                                                        } 
     290 
     291                                                        string leftSchemaName = compSchema.u.join.memberA; 
     292                                                        string leftSchemaLink; 
     293                                                        if (schemaLeft.Exists()) 
     294                                                                leftSchemaLink = CWebUtil::GetRelativeURL(rootLevel, schemaLeftLink); 
    283295                                                         
    284                                                         string rightFieldName = fldRight.GetName(); 
    285                                                         string rightFieldLink = CWebUtil::GetRelativeURL(rootLevel, fldRightLink); 
    286                                                         string rightSchemaName = schemaRight.GetName(); 
    287                                                         string rightSchemaLink = CWebUtil::GetRelativeURL(rootLevel, schemaRightLink); 
     296                                                        string rightFieldName; 
     297                                                        string rightFieldLink; 
     298                                                        if (fldRight.Exists()) 
     299                                                        { 
     300                                                                rightFieldName = fldRight.GetName(); 
     301                                                                rightFieldLink = CWebUtil::GetRelativeURL(rootLevel, fldRightLink); 
     302                                                        } 
     303                                                        else 
     304                                                        { 
     305                                                                rightFieldName = "1"; 
     306                                                        } 
     307                                                        string rightSchemaName = compSchema.u.join.memberB; 
     308                                                        string rightSchemaLink; 
     309                                                        if (schemaRight.Exists()) 
     310                                                                rightSchemaLink = CWebUtil::GetRelativeURL(rootLevel, schemaRightLink); 
    288311 
    289312                                                        Value leftNameVal(leftFieldName.c_str(), static_cast<SizeType>(leftFieldName.size()), alloc); 
    290313                                                        Value leftLinkVal(leftFieldLink.c_str(), static_cast<SizeType>(leftFieldLink.size()), alloc); 
    291                                                         Value leftSchemaVal(leftSchemaName.c_str(), static_cast<SizeType>(leftSchemaName.size()), alloc); 
    292                                                         Value leftSchemaLinkVal(leftSchemaLink.c_str(), static_cast<SizeType>(leftSchemaLink.size()), alloc); 
    293314 
    294315                                                        Value rightNameVal(rightFieldName.c_str(), static_cast<SizeType>(rightFieldName.size()), alloc); 
    295316                                                        Value rightLinkVal(rightFieldLink.c_str(), static_cast<SizeType>(rightFieldLink.size()), alloc); 
    296                                                         Value rightSchemaVal(rightSchemaName.c_str(), static_cast<SizeType>(rightSchemaName.size()), alloc); 
    297                                                         Value rightSchemaLinkVal(rightSchemaLink.c_str(), static_cast<SizeType>(rightSchemaLink.size()), alloc); 
    298317 
    299318                                                        item.PushBack(leftNameVal, alloc); 
    300319                                                        item.PushBack(leftLinkVal, alloc); 
    301                                                         item.PushBack(leftSchemaVal, alloc); 
    302                                                         item.PushBack(leftSchemaLinkVal, alloc); 
    303320 
    304321                                                        item.PushBack(rightNameVal, alloc); 
    305322                                                        item.PushBack(rightLinkVal, alloc); 
    306                                                         item.PushBack(rightSchemaVal, alloc); 
    307                                                         item.PushBack(rightSchemaLinkVal, alloc); 
    308323                                                } 
    309324                                                else 
     
    321336                                                                CPageParams baseFieldPage(PAGE_DETAILS, &baseField); 
    322337 
    323                                                                 string baseFieldName = baseField.GetName(); 
    324                                                                 string baseFieldLink = CWebUtil::GetRelativeURL(rootLevel, baseFieldPage); 
    325                                                                 string baseSchemaLink = CWebUtil::GetRelativeURL(rootLevel, baseSchemaPage); 
     338                                                                string baseFieldName; 
     339                                                                string baseFieldLink; 
     340 
     341                                                                // now check if the field exists in the join-member! Otherwise we can't determine the field name and URL! 
     342                                                                if (baseField.Exists()) 
     343                                                                { 
     344                                                                        baseFieldName = baseField.GetName(); 
     345                                                                        baseFieldLink = CWebUtil::GetRelativeURL(rootLevel, baseFieldPage); 
     346                                                                } 
     347                                                                else 
     348                                                                { 
     349                                                                        // if this field doesn't exist in the join member, show the fieldid instead! 
     350                                                                        stringstream baseFieldIdStrm; 
     351                                                                        baseFieldIdStrm << field.GetMapping().u.join.realId; 
     352                                                                        baseFieldName = baseFieldIdStrm.str(); 
     353                                                                } 
     354                                                                 
     355                                                                string baseSchemaLink;  
     356                                                                if (baseSchema.Exists()) 
     357                                                                        baseSchemaLink = CWebUtil::GetRelativeURL(rootLevel, baseSchemaPage); 
    326358                                                                 
    327359                                                                Value baseFileNameVal(baseFieldName.c_str(), static_cast<SizeType>(baseFieldName.size()), alloc); 
    328360                                                                Value baseFileLinkVal(baseFieldLink.c_str(), static_cast<SizeType>(baseFieldLink.size()), alloc); 
    329                                                                 Value baseSchemaNameVal(baseSchemaName.c_str(), static_cast<SizeType>(baseSchemaName.size()), alloc); 
    330                                                                 Value baseSchemaLinkVal(baseSchemaLink.c_str(), static_cast<SizeType>(baseSchemaLink.size()), alloc); 
    331361 
    332362                                                                item.PushBack(baseFileNameVal, alloc); 
    333363                                                                item.PushBack(baseFileLinkVal, alloc); 
    334                                                                 item.PushBack(baseSchemaNameVal, alloc); 
    335                                                                 item.PushBack(baseSchemaLinkVal, alloc); 
    336  
    337                                                                 //strmTmp << this->pInside->LinkToField(tmpBaseSchema, field.GetMapping().u.join.realId, rootLevel) << "&nbsp;" << MenuSeparator << "&nbsp;" << this->pInside->LinkToSchema(tmpBaseSchema, rootLevel); 
     364                                                                // write the schema-index (left- or right join-member) so we could link to the correct form 
     365                                                                item.PushBack(field.GetMapping().u.join.schemaIndex, alloc); 
    338366                                                        } 
    339                                                         //else 
    340                                                         //      strmTmp << "&nbsp;"; 
    341367                                                } 
    342368                                        } 
     
    11991225                case AR_SCHEMA_JOIN: 
    12001226                        { 
    1201                                 strm << "(" << this->pInside->LinkToSchema(compSchema.u.join.memberA, rootLevel) << " <-> " << this->pInside->LinkToSchema(compSchema.u.join.memberB, rootLevel) << ")" << "<br/>"; 
     1227                                strm << "(" << "<span id='join-left'>" << this->pInside->LinkToSchema(compSchema.u.join.memberA, rootLevel) << "</span>" << " <-> " << "<span id='join-right'>" << this->pInside->LinkToSchema(compSchema.u.join.memberB, rootLevel) << "</span>" << ")" << "<br/>"; 
    12021228 
    12031229                                if(compSchema.u.join.joinQual.operation != AR_COND_OP_NONE) 
  • branches/work_320/doc/DocTextReferences.cpp

    r580 r664  
    462462        } 
    463463 
    464         //write anything past the form to output 
    465         strmTmp << tmp.substr(pos); 
     464        // if there is anything past the form-parameter, write it to output 
     465        if (pos != string::npos) 
     466                strmTmp << tmp.substr(pos); 
    466467 
    467468        return strmTmp.str(); 
  • branches/work_320/doc/DocWebserviceDetails.cpp

    r540 r664  
    124124        { 
    125125                const ARReferenceList& refs = this->ws.GetContent(); 
    126                 CARSchema wsOwnerSchema(ws.GetOwnerObjects().ownerObjList[0].ownerName); 
     126                CARSchema wsOwnerSchema; 
     127 
     128                const ARContainerOwnerObjList &wsOwners = ws.GetOwnerObjects(); 
     129                if (wsOwners.numItems > 0) 
     130                { 
     131                        wsOwnerSchema = CARSchema(wsOwners.ownerObjList[0].ownerName); 
     132                } 
    127133 
    128134                for(unsigned int i=0; i< refs.numItems; i++) 
  • branches/work_320/project.cmake/files.cmake

    r650 r664  
    423423 test/fakes/FakeARServerObject.cpp 
    424424 test/fakes/FakeARServerObject.h 
     425 test/TinyXmlTests.cpp 
    425426 util/CommandLineValidatorTest.cpp 
    426427 util/RefItemTest.cpp 
  • branches/work_320/res/schema_page.js

    r512 r664  
    1515        return (schemaFieldList[row].length > 7 ? schemaFieldList[row][7] : ""); 
    1616    }, 
     17    join_left: null, 
     18    join_right: null, 
    1719    join_RFR: function(row) { 
    1820        var pos = 7; 
    1921        var div = $("<div>"); 
    2022        var first = 0; 
    21         for (pos; pos + 3 < schemaFieldList[row].length; pos += 4) { 
     23        for (pos; pos + 2 <= schemaFieldList[row].length; pos += 2) { 
    2224            if (first > 0) { div.append($("<br/>")); } 
    2325 
    24             div.append($("<a>").attr("href", schemaFieldList[row][pos + 1]).text(schemaFieldList[row][pos])); 
     26            if (schemaFieldList[row][pos+1]==="") 
     27              div.append($("<span>").addClass('fieldNotFound').text(schemaFieldList[row][pos])); 
     28            else 
     29              div.append($("<a>").attr("href", schemaFieldList[row][pos + 1]).text(schemaFieldList[row][pos])); 
    2530            div.appendText("\u00a0 -> \u00a0"); 
    26             div.append($("<img>").attr("width", 16).attr("height", 16).attr("alt", "schema.gif").attr("src", "../../img/schema.gif")); 
    27             div.append($("<a>").attr("href", schemaFieldList[row][pos + 3]).text(schemaFieldList[row][pos + 2])); 
     31 
     32                                                var joinSchema = schemaFieldList[row][9]; 
     33                                                if (schemaFieldList[row].length == 10 && (joinSchema == '0' || joinSchema == '1')) { 
     34                                                        var joinLink = (joinSchema == '0' ? this.join_left : this.join_right); 
     35                                                        div.append($("<span>").append(joinLink.clone())); 
     36                                                        pos++; 
     37                                                } 
     38                                                else if (schemaFieldList[row].length == 11) { 
     39                                                        var joinLink = (first?this.join_right:this.join_left); 
     40                                                        div.append($("<span>").append(joinLink.clone())); 
     41                                                } 
    2842 
    2943            first++; 
     
    4054        if (type === "view" || type === "vendor") 
    4155            this.realFieldRenderer = this.view_vendor_RFR; 
    42         if (type === "join") 
     56        if (type === "join") { 
     57            this.join_left = $('#join-left'); 
     58            this.join_right = $('#join-right'); 
    4359            this.realFieldRenderer = this.join_RFR; 
     60        } 
    4461    } 
    4562}; 
Note: See TracChangeset for help on using the changeset viewer.