********************************************************************************** Application notes ********************************************************************************** Core: Aura commons skin xw xwdoc 1.0.9 15/12/2016 - FIX: ERM009130 added entites deescaping 1.0.8 15/11/2016 - FIX: accesso diretto con url, per coretta formatazione dei titoli serve parametro: fPubbId 1.0.7 14/11/2016 - MOD: aggiunta posibilita di chiamare query dalla url http://..url.../?query=B64 1.0.6 20/07/2016 - MOD: aggiunta possibilita di avere risultati ordinati con la order by globale questa va configurata dentro config.php con aggiunta della riga: define('__GLOBAL_DEFAULT_ORDER_BY__', 'xml(xpart:/doc/@data_prot)'); questo ordinamento va usato in vaschette e anche nelle ricerce se non specificato un order by uleriore - FIX: added 'fOrderByState' in reset cleaning process app.config.inc->app.restartResetData 1.0.5 13/05/2016 - Added regexp replacing on columns 1.0.4 29/03/2016 - Created Motta config 1.0.3 15/05/2015 - Added media column 1.0.2 15/05/2015 - UI aggiustamenti interfaccia 1.0.1 12/05/2015 - funzioni completate 1.0.0 01/03/2015 - created ********************************************************************************** C O R E notes ********************************************************************************** --- Remember to change the pxml.php file when a new version in released --- 4.10.2 14/11/2016 - Fix escaping xml node in XwDocDesktopHelper 4.10.10 14/01/2016 - STABLE: release 004_010_000 branched 4.9.26 12/01/2016 - FIX: missing USE 4.9.25 07/01/2016 - FIX: xw.pkg/pxml/xw/db/filter/ThenFilterQueue.php __sleep send nonexisting field 4.9.24 12/11/2015 - FIX: pxml.edit.js:440 assignement in condition 4.9.23 09/11/2015 - FIX: removed use di not used var in pxml.ajax.js 4.9.22 19/10/2015 - MOD refactor final comments in change log from slash double star to slash single star, due to broken code hinting in eclipse 4.9.21 19/10/2015 - ADD possibility to skip class loading from some library package 'skipClassLoader' => true, will handle task - ADD possibility to inherit resources, there is new attribute in package manifest lib.php in 'resources' array 'inherit' => '', this give us non intrusive possibility to override resources. So we can create some lib package with just some overloaded resources and it will fall back in all others into inheritanc eparent package, this is applicable to all resources loadable via resource manager if it recognise presence of inherit attribute, it will check existance of resource, and in case of missing rs it will try to load from inherited library. 4.9.20 08/10/2015 - FIX non orderable coluns hiding - FIX 'search-sortable' identification basing on non corect class match SearchFormService.php 4.9.19 05/10/2015 - MOD added 'formatTimeFromXW' in DataFmt.php 4.9.18 02/10/2015 - FIX missing 'xmlAutoEditIsDone' event in case of 'cancelNewAction' 4.9.17 21/09/2015 - FIX prototype.js (1.7.2) for some mobile js interpreters (EGAF #3597) - FIX print manager whole page and intervall settings 4.9.16 14/09/2015 - FIX Css tweaks - FIX missing class use declaration for pxml\xw\db\XwResponse - FIX fixed options parameter in PageNavigator (now it must be an array) - ADD new method for checklist.manager.js createManager, so we can handle just one instance in page 4.9.15 08/09/2015 - MOD add posibility to ask confirmation if there is click to navig tree during edit - MOD add posibility to signal event to javascrit for Start/End editing - xmlAutoEditIsDone - xmlAutoEditIsStarted 4.9.14 07/09/2015 - FIX TitlesService had non generic handling for execute case 'selFilter' now the parameter determinign query for XW have to arrive form external call in selection filtwer options as new parameter 'xwQueryXp' if not present it will be used default '?ndoc' => search for idIUnit 4.9.13 04/09/2015 - ADD added functions public function getSearchField($id) , public function getDataField($id)in SFormFieldFactory due to better flexibility to render forms customisations - ADD posibility explicitly pair 2 fields as interval extrems for search form so if there are 2 fields in FilterObject with convention: min: __as__min max: __as__max they will be handled as interval during filter condition construction we add necessary handling in FilterField base 4.9.12 23/07/2015 - ADD XmlObject_DEBUG.php - FIX use of UIAddCss on simple Text - FIX missing labels in widgets 4.9.11 22/07/2015 - ADD startCopyEdit action in AutoEdit system, so we can creatre new record by copy from existing one - FIX SearchFOrmService initialisation in case called from XmlAutoedit after redirect - ADD startCopyEdit action in AutoEdit system, so we can creatre new record by copy from existing one 4.9.10 21/07/2015 - ADD XmlObjectFormatOnBind-it will force data formatting on each bind - FIX format XmlObject.php - ADD function getAncestorByName in XmlModel - ADD function getAncestorByName in XmlFIeld - FIX template refference - FIX minor fixes in css edit.css 4.9.9 16/07/2015 - ADD XslFormattedXmlObjectRenderer and XmlObjectXml which represent static XML part of model with possibility to render it with XSL - ADD posibility tu use algorithm for rs_file_type_match_on_xp schema include type attr('doc_type_value_xp') : // - //xpath // - array('class name', array()) // where null in param array will be replaced with Xml, so we can handle arbitrary algorithm on orginal document DOM and decide what include then. - ADD method toNumber on DataField - ADD IXmlAlgorithm base for any algorithm executed on some Xml 4.9.8 30/06/2015 - MOD SFormFieldFactory.php for validation messages - MOD pxml.edit.js for instantValidation messages - MOD forms.pxml for validation messages 4.9.7 22/06/2015 - MOD SResManager.php changed in function getString. Inside body function, changed the name of the variable $key in $temKey due to wrong implementation of return statement because the condition returnOriginalIfNotFound returns not the $key value passed by argument but the new $key variable modified inside the function, that maybe has lost the original value. Code smell error. 4.9.6 17/06/2015 - MOD in commons.pkg/rs/tmpl/fomrs.pxml add in SimpleTextDiv if value is empty set it to nbsp 4.9.5 12/06/2015 - ADD: SResManager.php add a new method, named getBrowserNameString(), that gives the browser name with no version details. 4.9.4 12/05/2015 - ADD: posibility to obain desktop rule from provider DesktopService, XwDocDesktopHelper, IXmlProvider 4.9.3 08/05/2015 - ADD: refresh internal data functionality in SXwTitlesHelper - ADD: NoConditionFilterField.php field with no condition efect - ADD: commons.formatDateTimeIso in commons-lib.xsl, it formats yyyymmddThhmmss -> dd/mm/yyyy hh:mm:ss 4.9.2 07/05/2015 - FIX: fixed check box as master field pxml.edit.js - FIX: XwColumnsHelper missing $this in function call - MOD: JsEditEventsHandlerService can handle array of UI updates 4.9.1 06/05/2015 - FIX: finfo to \finfo - FIX: warnings - MOD: fix array dereferencing - MOD: modified whole titles configuration, in order to automatise as much as possible ATitlesItem.php - some fixes IArrayProvider.php - Base class for array provider TitlesItem.php - automated titles handling GlobalColumnsProvider.php - example of Columns array provider SXwTitlesHelper.php - strong refactor for __AUTO__ generation, defaults, and other modifications XwColumnsHelper.php - strong refactor for __AUTO__ generation, defaults, and other modifications XwOrderByHelper.php - strong refactor for __AUTO__ generation, defaults, and other modifications TitleRow.php - automated titles handling - MOD: DataFmt::titleRowToArrayAssoc handle also types of columns, specificaly 'd:...' - FIX: removed unused function 4.9.0 05/05/2015 - STABLE: release 004_008_000 branched 4.7.23 13/04/2015 - MOD: SResManager.php on call of setCookieVar to set default values of path and domain (ignorePath = true, ignoreDomain = true) - MOD: SApplication.php on function setCookieVar add input params ingnorePath and ignoreDomain to set path and domain of a cookie to its default values if the cookie is specific of the application 4.7.22 20/03/2015 - MOD: ThenFilterObject.php fix on getFilterCondition to return the correct query string 4.7.21 18/03/1985 - MOD: ThenFilterQueue.php now the class detect if a group of then filter elements are selected. In this case create the new condition in AND of the then fields, set the condition of the first element of the group and skip the condition of the others, set an array of selection order for the correct position of the selection elements for the query string - MOD: ThenFilterObject.php change function getFilterCondition to return the correct filter condition due to the grouping of then filter fields - MOD: ThenFilterFieldBase.php add function setSkipCondition that return nothing. The then filter field that extend this object has to overload this method. If not the default value is false. 4.7.20 17/03/2015 - MOD: added new config param in app.config.inc app.cookie.path => '/' which can indicate cookie path atribute app.cookie.domain => null 4.7.19 16/03/2015 - MOD: AutoCompleteValue.php in __construct add value element always 4.7.18 13/03/2015 - MOD: AutoCompleteValue.php changed constructor. After the highlight of the label, add the frequency occurrence with   - MOD: in function decode changed the creation of label tag. Now the frequency of occurency is send like a param and not appended to the label var 4.7.17 09/02/2015 - MOD: pxml.edit.js in function onInstantValidationResultEvent shwo the validation message if there is a valid validation message - MOD: commons.pkg/pxml/commons/service/ajax/ValidationService.php add escape special chars before showing the validation message 4.7.16 21/01/2015 - MOD: input-sanitizer.config.inc add configurations for POST, GET, COOKIE variables - FIX: SInputSanitizer.php fix on function sanitize. On POST, GET and COOKIE add rules to sanitize the values of this params 4.7.15 19/01/2015 - FIX: Pxml.InstantValidated::create on non existing element bug 4.7.14 09/01/2015 - ADD: xml object collection values collectiong mecanics 4.7.13 24/12/2014 - FIX: validateDate in DateValidator.php 4.7.12 17/12/2014 - MOD: updated iwx.core.js and iwx.runtime.js for Iwx 2.2.2+ calling interface and events - MOD: in pxml.edit.js in onInstantValidationResultEvent function add the fix to remove any validator messages if present 4.7.11 17/12/2014 - MOD: added example service for instant model independend validation pxml\xw\service\ajax\NoModelValidationService 4.7.10 09/12/2014 - FIX: in commons.pkg/pxml/commons/db/data/validator/DateValidator.php add function validateDate($date, $format) to validate a string that represent a data field in the specified format (default: d/m/Y or equivalent dd/mm/yyyy) 4.7.9 29/10/2014 - FIX: strict inheritance in DocWayTitlesService.php - ADD: new persistor PT_XCACHE - ADD: new persistor type PT_AUTO this will choose it self depending what is available it will choose between PT_ZEND_HYBRID, PT_XCACHE and PT_FILE - FIX: usingn xcache we have to avoid circular autoloading dependancies - MOD: SInputSanitizer.php now corectly handle also cookies with configurable rules - MOD: completed zend server inependancy process now all pxml can work also without zend server caching persistor can be configured or as PT_FILE or as PT_XCACHE - MOD: adapt all eventual .htaccess for apache 2.4.x and backward compatibility for apache 2.2.x there are strong diferences in security handling in apache 2.4.x (http://httpd.apache.org/docs/2.4/upgrading.html) so we use to determine correct apache version mod_version add this in .htaccess in root directry LoadModule version_module modules/mod_version.so so we modify all .htaccess files so it function in both environments 4.7.8 29/09/2014 - FIX: User profile refresh after manual login force 4.7.7 17/09/2014 - FIX: DEBUG_WARINIG -> DEBUG_WARNING in HtmlBody.php 4.7.6 12/09/2014 - FIX: possible xss using cookies vector 4.7.5 09/09/2014 - FIX: Changed 'Titotli' into 'Titoli' in xw.pkg/rs/i18/IT/default.properties 4.7.4 30/07/2014 - MOD: EmailValidator updatae the method to validate a string that represent an email address Now the validate function uses the filter_var and checkdnsrr to validate the email addres checking if it's in the correct format and if the domani is correct If filter_var and checkdnsrr are not avilable the function use a regular expression (the same in filter_var) to check the email address format and the getmxrr function (or the windows variant) to validate the email domain 4.7.3 24/07/2014 - FIX: for attribute httponly of cookie we add config, cause when there is iwx, it cant cee httponly cookies and so there is no posibility to upload in authenticated session so we refix all points where cookie is set, with config SApplication.php, RouterAdv.php, Session.php there are 2 params for app.config.inc - 'app.cookie.httpOnly' => false, - 'app.cookie.secure' => false, - MOD: update iwx.core.js for iwx 2.1.22 4.7.2 24/07/2014 - FIX: IE 11.0 was not corectly recognised => problems with favicon.ico - updated browser detection - separated favicon.ico link generation for IE and others 4.7.1 23/07/2014 - mod XmlAutoEditService function execute add in case deletePart the execute hook after a part is deleted and in case restorePart add hook after a part is restored - mod XmlDocumentEditActionBase add ED_ACT_JUST_AFTER_DELETE_PART and ED_ACT_JUST_AFTER_RESTORE_PART editing action hooks 4.7.0 23/07/2014 - New head versioned 4.6.0 23/07/2014 - STABLE: release 004_006_000 branched 4.5.14 14/07/2014 - continue on services content caching AjaxServiceGate.php,SApplication.php,BaseHandler.php,ICacheHandler.php,FileLock.php,NamedIndex.php,PersistorStats.php,PersistorZendBase.php PersistorZendHybrid.php,Session.php,User.php - added new url command mapping [../service/resetCache] it will invalidate all services content cache - mod error message formatting in case of warning - changed gif ajax activity into pure javascript spinner - add javascript minimize building and use of all minimized javascripts *.min.js in iter.pkg all min javascript will be considere in case there is set : 'livesite.page.jsFramework' => HtmlHead::JS_JSFRAMEWORK_RELEASE, in app.config.inc - mod updated phpmailer to last stable version 4.5.13 11/07/2014 - mod XmlObjectCollection add check in function injectXml. If an element in collection has the attribute erased equals true, the injection doesn't put the node into collection - mod XmlObject add chenk if element is erased in functions dumpIntoDom and dumpXml 4.5.12 10/07/2014 - add in XwDatabase.php management of connection_timeout and default_socket_timeout reading value from 'db.config.inc' 4.5.11 09/07/2014 - fix in XwDocumentModel function getXmlObject add parameter strict to enable/disable the throw exception - add (egaf) added generic element render in html head (HtmlHead, Page, pages.config.inc) all depends on pages.config.inc array('generic' => 'link', 'rel' => 'apple-touch-icon-precomposed', 'href' => 'apple-touch-icon.png') => array('generic' => 'link', 'rel' => 'apple-touch-icon-precomposed', 'href' => array('name'=>'touch/apple-touch-icon.png', 'ns'=>'iter', 'type'=>'img') => - mod update to prototype.js v 1.7.2, replicated fixes 1500: queryValues.push(toQueryPair(key, value)); => queryValues.push(toQueryPair(key + '[]', value)); 3127: if (style === 'opacity' && !STANDARD_CSS_OPACITY_SUPPORTED) return getOpacity_IE(element); => if (style === 'opacity') { if (!STANDARD_CSS_OPACITY_SUPPORTED) { return getOpacity_IE(element); } else { value = value ? parseFloat(value) : 1.0; } } 3144: //@since 4.5.11 if (element.currentStyle != undefined && element.currentStyle != null && element.currentStyle.hasLayout != undefined && !element.currentStyle.hasLayout) //if (!element.currentStyle || !element.currentStyle.hasLayout) 6300: if(element.tagName != undefined){ if (serializers[element.tagName.toLowerCase()]) results.push(Element.extend(element)); } /* if (serializers[element.tagName.toLowerCase()]) results.push(Element.extend(element)); */ 4.5.10 30/06/2014 - fix incorect case in PersistorZendHybrid class name in SPersistorFactory 4.5.9 26/06/2014 - fix for xss on cookies, there were posibility to obtain error page with part of cookie in error mesage - fix for error reporting for security reasons 4.5.8 25/06/2014 - fix double encoding of texts while they were dumped into dom, we should escape texts just when we produce manually xml - fix on Datafmt::money_format($format, $number), there were some noticies 4.5.7 23/06/2014 - mod in EmailValidator.php use preg_match instead of ereg 'cause it's deprecated 4.5.6 23/06/2014 - mod in Session.php mod start function to add the secure flag if needed - mod in RouterAdv.php mod takeCookies function to add the secure flag if needed - mod in SApplication.php mod setCookieVar function to add the secure flag if needed 4.5.5 19/06/2014 - added httpOnly for cookies 4.5.4 18/06/2014 - FIX: multipage tiff thumb generation 4.5.3 13/06/2014 - MOD: xw.reports.js in onReportManagerEvent in switch-case generatereport add the control of an empty list of possible report - MOD: XwDatabase.php add generateReportFromSPAsynchronous function 4.5.2 09/06/2014 - MOD: reports2.pxml check the correct checkbox of the number of record the user want to report. - MOD: xw.reports.js on function start add the param recordsSelected to send to the fCmd manager on function onReportManagerEvent, case generatereport, add the data fOnlySelectedString for the onlySelected option - MOD: default.properties (IT/EN) add the title of the popup dialog shown up when the report is generated - MOD: ReportManagerOptions.php add field recordsSelected for the enable of the corresponding checkbox on the ReportManager Dialog - MOD: ReportManagerService.php on manager case: add recordsSelected value to check the correct checkbox on the ReportManager Dialog on onlySelected case: add the read of the documents indexs string to do the report 4.5.1 27/05/2014 - FIX: pxml4 fixes in cdm.pkg - ADD: trace logs in case of somthing is missing - ADD: 2 new default rules: /mediaupload, /iwxGate 4.5.0 27/05/2014 - MOD: strong refactor of persistance layer - fixed : zend_disk, zend_mem - added new kind of cache-> hybrid, it use ram for all data under certain configured trashold, rest go disk [SPersistorFactory::PT_ZEND_HYBRID] - there are new config variables in app.config.inc 'app.persistorType' => SPersistorFactory::PT_ZEND_SHM, 'app.persistorInfinityExpiry' => 86400, // 24 hours 'app.makeCacheOccupationStat' => true, // make statistic, so we can tune ram cache 'app.shmDiskThreshold' => 51200, //10k bytes - MOD: some minor fixex for gc in : ISession.php, Session.php - ADD: possibility to ceche service call (highly EXPERIMENTAL feature) this can be configured in services section in app.config.inc f.e.: 'SearchFormService' => array( 'class' => 'pxml.xw.service.ajax.SearchFormService', 'access' => 'inherit', 'cache' => array( 'active' => false, 'expire' => 300 //expire 60 seconds ) ), - ADD: session garbage collection due to Zend dir removing bug - ADD: added now variables scope [pxml] that means there is global off user session space, you can access to those variables using helper functions: getPxmlVariable($name, $default = null, $namespace = '') setPxmlVariable($name, $value, $namespace = '', $expire = -1 ) - FIX: some fixes in SUrlDispatcher.php - MOD: extended logging format - DEPRECATE: fileUploadGate.php login.php logout.php logoutTransp.php pxmlIWxHttpGate.php pxmlMediaUploadGate.php pxmlPagesGate.php pxmlServiceGate.php pxmlStat.php xwDocFileUploadGate.php - MOD: there is possibility to turn off [Error] implicit logging in error constructor using config: except.logExceptionsFromConstructor from log.config.inc - ADD: two warnings: SessionExpiredWarning, SessionMissingWarning - ADD: asynchronous execution for PXML - there is possibility to write some IAsyncHandler implementation which will do some pxml asynchronous (not browser dependent) proccess execution in pure PHP sandbox. This call can be done by : PxmlAsyncExecute::executeAsync(); during this call will be generated async call token which will be saved in session or eventually in pxml variable. (pxml variable global off user context) This token then will be controlled prior of async execution, and async proccess will run only if token is OK. for better understunding read : PxmlAsyncExecute.php with this method ther is handled sessions garbage collectiong. - there is added new [async_exe.config.inc] for eventual async execution configuration. - we also modified [default-url-dispatch.config.inc] for new route rule [/asyncExe] - check also one example async handler: AsyncZendCacheCleaner.php - MOD: removed useles exceptions - FIX: stat ui updated (host)/pxmlStat - FIX: some ui tweaks in commons.pkg/rs/tmpl/config.pxml - FIX: missind use in XwDocumentHelper.php 4.4.0 26/05/2014 - Stable Release. 4.3.39 21/05/2014 - FIX: use of route /iwxGate instead of old gate - ADD: IWxMediaHandler.php for iwx upload/download requests, so lib/pxmlIWxHttpGate.php will be dismis. - FIX: updated iwx.core.js for 2.1.18r 4.3.38 12/05/2014 - MOD: Mail.php add the BCC field value. 4.3.37 28/04/2014 - MOD: restore DocumentViewService.php without ajaxContentLoaded {type:documentScrollView} for the feature request #2175 Now the Iter.ScrollMan is register on type documentView. 4.3.36 22/04/2014 - MOD /lib/commons.pkg/pxml/commons/core/mail/Mail.php fix on call class \PHPMailer - MOD /3di.pxml4.iter/lib/commons.pkg/rs/tmpl/html_base.pxml fix error for ticket #2261 on line 59 for the javascript injection bug. 4.3.35 15/04/2014 - MOD: ErrorPopupContent.php add configuration to show or not the message on expired session on reload. - MOD: DocumentViewService.php add ajaxContentLoaded {type:documentScrollView} for the feature request #2175 4.3.34 07/04/2014 - MOD: added forcing of default language in case it is not declared as usable language SResManager 4.3.33 04/04/2014 - MOD: commons.pkg/pxml/commons/core/route/SUrlDispatcher.php on Session Expired if the request is about an image we responde with the ImageSessionExpired.png 4.3.32 02/03/2014 - FIX: SimpleSelect template for multiple selection case, adding hidden for null state 4.3.31 01/03/2014 - ADD: pxml\xw\db\model\XmlFieldNonSchemaDependant its XmlField clone which is not dependant from schema and it can be created in DataFiled manner with options array, it is good for manual model subparts creation - ADD: pxml\xw\db\model\schema\XmlObjectUIClass for schema editing 4.3.30 31/03/2014 - ADD: LoaderHelper class - MOD: update default.properties in folder xw.pkg/rs/i18/["EN","IT"] 4.3.29 26/03/2014 - FIX: SearchFormService page title - ADD: pxml\commons\ui\component\generic\Img 4.3.28 25/03/2014 - FIX: TitlesService was not corectly handling situation of fCmd='sel' it was using fData='current' and not fSelectionID - FIX: sintax sugar fix (interface method implementation missing) XmlAttachmentsModel.php XmlXwAttachment.php XmlXwAttachments.php XmlXwFile.php - ADD: new method in SRsmanager::putRsXml which will save xml fil in resources - FIX: conformity with 4.3.23 isEqual add in XmlObjects XmlObject.php XmlObjectCollection.php 4.3.27 20/03/2014 - ADD: Test controler - FIX: SInputSanitizer Black List rule was refactored to more filter less blind hits 4.3.26 19/03/2014 - MOD: style in error.php - ADD: created new default navigation rule /version it is replace of old version and change log visualisation it is possible define custom change log files, which will be add to application and core log this files are defined in generic.config.inc ex: //custom version files 'version.customfiles' => array( constant('__PXML_ROOT__') . '/uni.pkg/version.txt' ) - FIX: sintax fix in comment of SLoader - MOD: created set of default navigation rules for SUrlDispatcher they are defined in default-url-dispatch.config.inc /service, /user, /version these rules can be overriden in url-dispatch.config.inc 4.3.25 18/03/2014 - FIX: openUrlInPopup function in pxml.js - MOD: complete refactor of signing method, there is added xw:file in db like brother fo original attachment: original will obtain attribute signed="" and signed derived have attribute signed="true" there is onTitle trigger active which create virtual attribute inside xw:file local signed = n:getAttribute('signed') if signed ~= '' then n:setAttribute('attachId','signY|s|' .. signed) else n:setAttribute('attachId','signN|s|' .. n:getAttribute('name')) end so we can handle direct signed show, and in case of signed attachment original is hidden for this we have to change many files - FIX: selectionId handling in case of History application from crumbles click - FIX: SelectionTreeLeftMenuPanelService was not coretly handling class of service - FIX: in setCurrent set handling and query reexecution - ADD: user data model - FIX: fixed all empty() use on string values where eventually can arrive '0', so we made is_empty() custom function for handle it - FIX: fixed db creation params in SXwDatabaseFactory - MOD: XwDocumentModel::create use better xml parameter, and $this->_modelConfigId must be set - ADD: new force parameter to setCurentset call in XwDatabase - FIX: SInputSanitizer improved rules - FIX: HistoryRecord was not coretly handling SelectionID - ADD: invalidation event type SApplication 4.3.24 17/03/2014 - FIX: SLoader modules scan - FIX: error message retrieval in error.php - FIX: of multi login using ACL user source patched : User, XwDocWayDatabase, EC_XwDatabase 4.3.23 10/03/2014 - FIX: XmlObject::dumpStructureXml was stop dumping on invisible group, we changed it, so if there are children it return children instead of empty string - FIX: use of new method isEqual instead of '==' - FIX: 2 XmlField cant be compared simply by '==' but it should be done by '===' due to strong recursive problems so we add method isEqual 4.3.22 07/03/2014 - FIX: SortableSearchFormContent now really use custom SearchFormActions class as specified in filter.config.inc. Introduced method drawActions in SortableSearchFormContent.php which is called in SortableSearchFormContent template. 4.3.21 07/03/2014 - FIX: XmlObjectCollection::dumpStructureXml was skipping current node editing tree, now it follow structure if current edited object is descendant of some of direct child of collection - FIX: XmlObject::dumpStructureXml was skipping new nodes 4.3.20 06/03/2014 - FIX: out of set handling after redirect vs DocumentViewService - FIX: tinyMce was not reseting it self in time, so we add cleaning on ajaxBeforeReplaceChildren event this event then is removed when is not more necesary, fix done in pxml.edit.js 4.3.19 28/02/2014 - FIX: in TitlesService::getBrowserHistoryCallParams() was not handling 'sel' command - ADD: we add new proxy events on ajax management: ajaxBeforeAppendAsFirstChild - when taconite is about to add new dom elements params: {element: } ajaxBeforeInsertAfter - when taconite is about to add new dom elements params: {element: } ajaxBeforeInsertBefore - when taconite is about to add new dom elements params: {element: } ajaxBeforeReplace - when taconite is about to replace dom elements params: {element: } ajaxBeforeDelete - when taconite is about to remove dom elements params: {element: } ajaxBeforeReplaceChildren - when taconite is about to replace dom elements params: {element: } ajaxBeforeCall - when taconit is about to make ajax call params: all ajax call parameters NOTE: they must be used wit caution, cause not correct code can broke page performance!! - FIX: TinyMce refresh refactor and multiple versions handling - MOD: Pxml.EventProxy was refactored to modern singleton declarration, and we beter handle adding for event listeners, it can be multiple requests for the same object - FIX: complete refactor of redrow for tinyMce editors, so we remove 'ResetEditors' event - ADD: tinyMce version 4, there is posibility to choose version '3' or '4' in forms.config.inc - FIX: SFormFieldFactory was not escaping backslashes in class names for 'lkp_fmtClass' - FIX: selt => self in DataFmt::convert_entity - FIX: XmlObjectHtml was incorectly binding to Xml and there were entity translation error - FIX: of script loading and its conclusion detection, added out of closure requests hashmap - FIX: MediaRenderer forward fpfx param into mediaupload handler - MOD: modified MediaRenderer template for new mediaupload request handler usage instead of old lib/pxmlMediaUploadGate.php - ADD: new http request handler for route /mediaupload MediaUpload it replace old lib/pxmlMediaUploadGate.php gate. 4.3.18 26/02/2014 - FIX: refactor of editing navigation structure and functionality, there was removed posibility to distinguish groups or not dumping. Now it just dump what have sense to navigate long and big editing forms. 4.3.17 20/02/2014 - ADD: added flag erased in XmlObject to rapresent an object that is marked deleted but must be hidden in views - XmlObject.php: added flag and methods to test and retrive it - XmlObjectColection.php: in injectXml setErased is used instead of setDeleted - CollectionValuesGrid.php: if xmlobject in line is erased, skip it (is not drawn) - ADD: added method searchClosestUniqueXmlObjectById in ModelTree objects - ADD: new base Xml model object XmlFieldText, it is nodeValue mapping field, it is alternative to with value. So now we can define soem xml element like pure XmlObject and its nodeValue will be represented by regula child field, so we can handle beter editing and also UI aspects example of use: HERE -> there is just one important thing: its type must be 'nodeValue' - MOD: - XwDocumentModel have new method searchClosestUniqueXmlObjectById - MOD: - XmlModel become 'EventDispatcher' there is added also one new event [EVT_MODEL_JUST_AFTER_XML_BIND] it is fired when model is binded to xml so we can use it in many places to make some specific initialisations - XmlModel have alse new method: searchClosestUniqueXmlObjectById - it search closest field with fixed ID from some pivot Field - XmlModel handle multiple fields with the same fixed ID. Now method registerXmlBindable handle multiple registers for the same id, so it will return array in case some one want XmlField by id with multiple presence. - MOD: structure of jsEvents data for model fields - MOD: we made some changes in JSEvents subsistem: - added harvested data array in JsEvent object. use getHarvested() to obtain it - added array of event params. use getParams() to obtain it: those params are configured in editing schema under specific jsEvent handler: ... ... - FIX: some skin tweeks skins.pxml - MOD: added container ID to each formfield layouts, so it can be used for field redraw - MOD: added Form field factory in XmlJsEditEventActionBase which is base class for all js events, so we can use it for eventual form parts redraw - ADD: we add possibility to use SXmlFormFieldFactory stand alone for generate UI of fields, it is handy when we need dinamically redraw some fields on form during JsEvents handling, for this we made some tweeks in SXmlFormFieldFactory and SFormFieldFactory - FIX: sintax error in AjaxReplace - FIX: autocemplete behavior was using incorect url pattern in FormSkinnableFieldPartBase 4.3.16 19/02/2014 - MOD: complete refactor of edit form scrolling using edit navigation tree - FieldsGroupDiv added id for scroll jump - forms.pxml - fixed FieldsGroupDiv and FieldsGroup template - XmlObject, XmlObjectCollection, XmlObjectSubModelRoot - modified dumpStructureXml function to generate correct ID jumps - modified SXmlFormFieldFactory, xw.runtime.js and xmlEditing.pxml - FIX: fixing widgets configuration - ADD: adding border style when dragging a widget component widget.css .widget_container .ss-placeholder-child { ... } - FIX: parse bool __currentDragState from draggable configuration into initLayout function pxml.widget.js 4.3.15 18/02/2014 - MOD: porting titles, desktop and test widget in pxml 4 - MOD: widget cascading config edit will work with 3-state bools instead of true/false, we will use inherit/true/false - MOD: changed policy of redraw for all widgets, they will just reload content of widget not its current holding DIV for this we add new option for creration call [renderJustForRedraw] this change is propagated to rest of the system starting in WidgetSupportService - FIX: added conf-examples into modules xw.pkg, and widget.pkg 4.3.14 17/02/2014 - FIX: debug done on SLoader, SResManager for pxml library dislocation steps to do for correct dislocation: 1: create new project in eclipse 3di.pxml4.xxxx.libs 2: add inside correct version of lib from core with all requested packages 3: setup correct pxml rot path to the lib dir in constant for specific config (config.php): ... define('__PXML_ROOT__', 'D:/Projekty/PhpWS/3di.pxml4.xxxx.libs/lib'); ... 4: setup alias for virtual host .... Alias /lib/ "D:/Projekty/PhpWS/3di.pxml4.xxxx.libs/lib/" .... and Options FollowSymLinks Indexes MultiViews DirectoryIndex index.php AllowOverride All Order Deny,Allow Deny from all 5: Check (and change) .htaccess (into application) to ensure it ends with... RewriteRule .* index.php ...instead of RewriteRule .* lib/pxmlRouter.php 6: set correct url prefix for all resource urls generated by SResManager in rs.config.inc ... 'res.core.urls.prefix' => 'lib', ... 7: be sure index.php contains: ... require_once('config.php'); require_once( constant('__PXML_ROOT__') . '/pxmlRouter.php'); ... 8: be sure you clean the module cache from tmp\cache\.htmodules and .htmodules-log - FIX: review of access rights for rs dirs in modules, it is beter handled now, we add where necessary read acces .htaccess files - FIX: services gate reference was hardcoded in FormSkinnableFieldPartBase - MOD: dislocation of lib dir of PXML, we try to have it in external project. So we changed packages scan alg. in SLoader - FIX: class names and different config types for PHP 5.3 (namespaces sugar) - FIX: sintax error - FIX: refactor of paths, ids, and pxml4 port of widgets core - FIX: refactored layout and relayout handlig pxml.widget.js - MOD: widgetcontainerwidget use JSON for order of contained widgets - MOD: refactor of widget names, and some processes in pxml.widget.js - ADD: port of widgets to pxml4 with refator for new file location techniques and php standards, eachwidget become one PHP module with its manifest lib.php for convention we use widget module root dir name xxx.wpkg then there is dri structure: - conf - dir which is put on php include path for eventual reusable configs (array style) - pxml\widgets\\... - source code - rs - widget private resources 4.3.13 14/02/2014 - FIX: subedit call must happen like 'editFormAction' so it will be handled with correct POST form commit fixed in xw.runtime.js - FIX: XmlObjectSubModelRoot in dumpIntoDom was not considering New node from parent dom after new node replace (cause model and xml was not returning it), we added return clausule in all chain XmlModel.php, XmlObjectSubModelRoot.php, Xml.php - FIX: changed 'file_exists' with 'is_file' o 'is_dir' in: SLoader.php SResManager.php ConfigXml.php FileLock.php NsCookieFile.php PersistorFile.php PropertyFile.php RouterAdv.php SslKeyStore.php Template.php UserSourceApache.php UserSourceTomcat.php UITemplate.php xwDocFileUploadGate.php 4.3.12 13/02/2014 - MOD: Exception stack trace configuration moved from app.config.inc to other configuration file providing 'except' configuration. - MOD: The search method executeQueryWithPageSize in XwDatabase.php is now extended in order to use specific title rule over the title per page already present. PAY GREAT ATTENTION: REQUIRES 3diws VERSION 3.7.8 OR HIGHER! 4.3.11 13/02/2014 - FIX: performance fix in DataFmt static class, there were some congfig properties retrieval in continuous manner, like encoding of page so we make it static, and we initialize it in SApplication constructor. SApplication, DataFmt 4.3.10 12/02/2014 - MOD: added new posibility to ask model ( XmlModel ) for proper self schema node: getSchemaDefByXp added method addNewNodesFromXml in model - MOD: we modify sub editing with standardized posibility to make subEdit from XmlObjectSubModelRoot directly, there is no necesity to have model developed in deep in this position, if there is call for some chield field value using [] access operator (f.e. editing grid lines value) we add new fake readonly field which simulate child field access usin xpath on xml and returning XmlObjectReadOnly to have this we made some changes up and down in files : XmlField.php XmlFieldType.php XmlObject.php XmlObjectReadOnly.php XmlObjectSubModelRoot.php - ADD: new fFormAction in XmlAutoEditService 'addPartWithNewSubEdit' - its needed for collection handling - FIX: for PHP 5.3.strict validation of overloaded constructor XwDocument and XmlDocumentModel - MOD: recfactor of navigTree.xsl - MOD: refactor of Pxml.XwAutoEditNavigTreeSupport in xw.runtime.js - MOD: updated jquery.scrollTo.js 4.3.9 11/02/2014 - FIX: work in progress on XmlModel optimisation (due to preformance problems on huge XML models) 4.3.8 10/02/2014 - FIX: SInputSanitizer - now handle also arrays - FIX: XmlAutoeditService was saving model to soon, there were mdel modifications in draw process and those were lost so we moved model save at the end. 4.3.7 06/02/2014 - ADD: conf-example in commons.pkg - ADD: added new package stat.pkg just added fase with initial development burst - ADD: getScriptBaseUrl in Pxml.js it will resolve some script base url - FIX: AIterable in case of null set on non indexed place will do nothing (silently) 4.3.6 04/02/2014 - FIX: fixed missing default value from model part config XwDocumentHelper 4.3.5 31/01/2014 - MOD: Documnet view service hide page navigator in case of 'OUT OF SET' document - MOD: Documnet view service in case of 'queryNoSel' we force 'OUT OF SET' document - MOD: added new error message managed in case of reload of document - FIX: incorect reference to Error class in catch clausules fileUploadGate.php pxmlIWxHttpGate.php pxmlMediaUploadGate.php pxmlPagesGate.php xwDocFileUploadGate.php SXwMultiDbManager.php 4.3.4 30/01/2014 - MOD: added possibility of specify more than one field for lookup in OnLookupEditRenderer and xmlEditing.xml 4.3.3 24/01/2014 - MOD: SqlDatabase for 4.3.0 changes in IDocumentSource 4.3.2 24/01/2014 - ADD: SInputSanitizer class for http input variables sanitisation, for eventual xss atacks this sanitizer have its config, where various sanitization rules can be set: input-sanitizer.config.inc 'http.is.active' => true, // turn on/off sanitizer 'http.is.rules' => array ( /* * rule for one input, if there is input variable 'fCmd' sanitizer will try to * apply following rules on it's value. */ 'fCmd' => array( /* * sanitisation method: * BlackList - if match value will be set '' * WhiteList - must match wl-type pattern otherwise '' * Both */ 'method' => SInputSanitizer::HTTP_REQUEST_FIELD_SANITIZE_METHOD_BW, /* * white list pattern */ 'wl-type' => SInputSanitizer::HTTP_REQUEST_FILED_TYPE_STRNUM, /* * true => value will be lowerized */ 'lowerise' => false, /* * true means html tags stripping */ 'stripHtml' => true, /* * escape spetial chars */ 'escape' => true ), /* * any command */ '*' => array( 'method' => SInputSanitizer::HTTP_REQUEST_FIELD_SANITIZE_METHOD_BL, 'wl-type' => 'SInputSanitizer::HTTP_REQUEST_FILED_TYPE_ANY', 'lowerise' => false, 'stripHtml' => false, 'escape' => false ) 4.3.1 23/01/2014 - MOD: XmlAutoEditService in finishExecute() added read of new document parameter editStructureXsl. This parameter is optional and can been specified in document.config.inc for each document model. In XwDocumentHelper added new method getEditStructureXsl() to retrive this new parameter. 4.3.0 16/01/2014 - MOD: XmlAutoEditService added new actions for 'SubEdit' and modified all actions which are involved in sub editing - MOD: Model classes modified for support xml injections during sub edits XmlFieldType XmlModel XmlObject - MOD: editing action hooks added in XmlDocumentEditActionBase.php - MOD: allot of changes in editing for possibility to edit in separate editing instances with underlaying model satacking add: IDocumentModel - All document models should implement this, so we can standardise model stacking IDocumentSource - All document sources (real and virtual) have to implement this, XwDatabase was changed to implement this, and following classes too SXwDatabaseFactory XwDocument XwDocumentAttachments XwDocumentModel XwVirtualDocumentSource - MOD: performance thweak on how xml parse text into dom when it restores itself from session 4.2.0 15/01/2013 - Branch Stable_release_004_002_000 4.0.33.1 20/12/2013 - FIX: IE problem with relative paths handling bug when manipulating location of document. 4.0.33 17/12/2013 - FIX: browser history corupt tiny_mce loading sequence, fixed in pxml.edit.js and pxml.js adding usage browser window base. there is new function in Pxml => Pxml.getDocumentBase() 4.0.32 13/12/2013 - MOD: added all report system based on jasperreports - REM: removed all jurasic report handling - MOD: styles for checklist.manager.js functionality in xw/components.css - FIX: some tweeks in checklist.manager.js - FIX: report call in AttachmentService - FIX: Fixed ReportManagerService for pxml4 (it was almost completaly refacttored) - REM: all references to jurasic report management in TitlesService - MOD: Adapt contstructor params APopupContent - ADD: MessagePopuptContent - FIX: reference return value XwDatabase::getReport - MOD: made some performance tweeks in HxTagsTranslator - FIX: User was not considering gorups for rights management in case of SUserProfileSourceFactory::UPST_NONE 4.0.31 12/12/2013 - ADD: add new metohod addNewNode to XmlObjectCollection: this bind and add a new DomNode to the collection 4.0.30 12/12/2013 - FIX: fixed problem in rendering lines after deleted lines in CollectionValuesGrid 4.0.29 10/12/2013 - MOD: XmlObjectCollection is now configurable via config element (child og grid element). It is possible to specify custom classes or default collection component classes will be used. It is possible to pass these custom classes additional options arguments. Internally XmlObjectCollection build and saves in its state these classes descriptors - MOD CollectionValuesGrid now respect UIComponent constructor paradigm - MOD: CollectionValuesGridHeader and CollectionValuesGridLine now respect UIComponent constructor paradigm that consist of passing two arguemnt: the XmlObject and the array of options so it is possible to use to getCfgParam method to retrive options and _Data protecte property to deal with XmlObject. - MOD: XmlModel::includeXmlSchemaPart method, it now prepend to the included node grid element if present 4.0.28 06/12/2013 - ADD: possibility to reload userProfile User, UserProfileSourceLCPS - ADD: added new command of LoginService : 'resetUserProfile' which is necesary for UserProfileReload this comand generate $DA('userProfileReloaded'... 4.0.27 04/12/2013 - UPD: updated browser detection classes - FIX: double label translation introduced like side effect in 4.0.23, so we rolled it back, eventual labels for actions must be translated first, it cant be done in JsProxyAction 4.0.26 03/12/2013 - FIX: eclipse file handling fix 4.0.25 02/12/2013 - ADD: new editing action [setPartFromLookup], it is used for complex xml parts editing it have also new hook : const ED_ACT_JUST_AFTER_COMPLEX_LOOKUP = 'justAfterComplexLookup'; - ADD: JsProxyMultiActionDefinition, for possibility to make more $DA in one js action - ADD: new kind of editing renderer: OnLookupEditRenderer, which can be used for complex xml parts editing by just simple choose from lookup combo it is composed by many configuration steps: 1: setup corectly editing schema for some XmlObject part ... 2: setup correct lookup handler in lookup.config.inc 'VocAnagrQueryLookup' => array( //type of lookup 'type' => 'query', //[index|thesaurus|query|custom] //modality how it will be started 'uiExecType' => 'action',//[action|auto] //form of presentation 'uiShowType' => 'popup', //[popup|combo|list|radiogroup] //content rendering params 'content' => array( //content class 'contentClass' => 'pxml.commons.ui.component.lookup.LookupPopup', 'contentClass.list' => 'pxml.commons.ui.component.lookup.LookupPopupValueList', 'contentClass.value' => 'pxml.commons.ui.component.lookup.LookupPopupComplexValue', //content class specific parameters 'contentParams' => array('useFilter' => true, 'useNavigator' => true, 'popupSkin' => $popupSkin, 'navigSkin' => $navigSkin,'filterSkin' => $filterSkin, 'valuesSkin' => $valuesSkin), //class for data source of popup 'sourceClass' => 'pxml.ec.db.xw.lookup.VocAnagrQueryLookupSource', 'sourceClass.additionalParams' => array( 'extraQuery' => '[XML,/anagrafica_voce_rubrica/@tipo]="persona_giuridica"' ) ), 'forceDbId' => 'DB_ec_idx', //target div for ajax response 'target' => 'popupDomDragDiv', //target for ajax response popups ), /* end 3: use or write that xml part view (readonly render class), in our example there is : pxml.xw.ui.component.edit.XslFormatedContent which will draw xml part using xsl. 4: write correct lookup source, which must have correct editing event connection in action. check 'pxml.ec.db.xw.lookup.VocAnagrQueryLookupSource' for example - MOD: Added possibility to setup UI classes for lookup popup, for this we add ILookupValue & ILookupValueList interface, and we modified system so it read UI classes from lookup config descriptor: 'contentClass' => 'pxml.commons.ui.component.lookup.LookupPopup', 'contentClass.list' => 'pxml.commons.ui.component.lookup.LookupPopupValueList', 'contentClass.value' => 'pxml.commons.ui.component.lookup.LookupPopupComplexValue', - MOD: LookupPopupValue rendering template will use already rendered text instead of draw call, so we can overload this part more easily - ADD: new overloadable method initDB($params) in XwQueryLookupSource - FIX: &getNamespaces() function of XmlModel it need return reference - ADD: injectXml(DOMNode $srcNode = null, Xml $srcDoc = null); method into all IXmlBindable: XmlField, XmlObject, XmlObjectCollection, XmlObjectSkip 4.0.24 28/11/2013 - FIX: if there is translation of some label with fallback to the key it went in exception anyway. fix done in SResManager 4.0.23 27/11/2013 - ADD: Iwx toolbars translation to xw..//i18/default.properties - MOD: added possible action label translation JsProxyAction.php - MOD: setWorkBuffered(false) will also close all eventual current buffers - ADD: posibility to handle loadAttachment via fcgi 4.0.22 25/11/2013 - MOD: add support for checkbox fields in several functions of file pxml.edit.js. Checkbox fields have always come with an hidden field which is the rela field that is persisted in db, but che checkbox is the field that generate events and must be observed. 4.0.21 25/11/2013 - ADD: formating of alternative search content - MOD: Help popup service should have parametric title this may be set be config value in help.config.inc as this: 'popupTitle' => 'preservation_info_title#uni' - ADD: browser page title handling in browser history management, is i18 now 4.0.20 19/11/2013 - ADD: new method getResultByNameAsXml for XwStoredProcResponse - ADD: new xwdoc.pkg under img/state - FIX: fixed matricola variable handling ( moved to constructor ) - FIX: class name in templates attachment and titlesAndDoc - FIX: restored missing call to parent constructor in Element class - ADD: new element in xsl management, , this is equivalent to: SResManager->getNsRootUrl($type, $ns) - ADD: new param in package manifests, 'forceLevel' => N, it give posibility force package level in order of loading precedence, this is done in SLoader->getAvailableModules function - FIX: autoloading chain, added fixed level for better loading order, commons set to -1 so its in front of others 4.0.19 15/11/2013 - FIX: addition uiAddCss fixed in SimpleCheckbox - FIX: editing slaves after checkbox was not working correctly pxml.edit.js - FIX: root editType attribute of schema forced to XmlObject::OET_FORM in XmlModel 4.0.18 12/11/2013 - FIX: navigation browser back button fix in xwdoc.runtime.js 4.0.17 07/11/2013 - FIX: in routing system route is action!!! so we use for page determination action instead of controller - FIX: borwser history navigation trough events n titles xw.runtime.js, xwdoc.runtime.js - FIX: pxml4 class naming: XwDocPostItModel, PostItEditor - FIX: for better browser history handling XwDocDocumnetViewService - FIX: forceInputVar in case of bool had bug - FIX: null use in rebind of key event in SortableSearchFormContent - ADD: ignoring of browser history generation after editing redirects done in XmlAutoEditService - FIX: various fixes for browser history done in DocumentViewService, TitlesService - ADD: getFields() getter in ATitlesItem - ADD: fUdType = 'undef in TitlesItem like default param - FIX: titlePage() was using _lastTitles before it has parsed it XwDatabase 4.0.16 05/11/2013 - ADD: LogInOut request handler - FIX: for schemainclude after xp refactor - FIX: RpaCcEditor fro pxml4 - FIX: fixed Img for pxml4 - FIX: AttachPrettyPhotoThumbnail for pxml4 new routed urls - FIX: IwxTestLayout for pxml4 4.0.15 30/10/2013 - MOD: message 'Empty response!' from javascript can be omitted setting app.showErrorsStackTrace = false - ADD: event isolation in ClosableTitledPanelSkin - FIX: XwDatabase warning code in case of empty result - ADD: alternative empty result for titles service, if it is configured, it is rendered instead of empty result warning, its configured in titles_order.config.inc, by param: 'emptyResultContentClass' => 'pxml.xw.ui.component.EmptyResultTitlesContent', - FIX: SearchFormService was loosing FormType state variable - MOD: result of instant validation and its handling is moved to pxml.edit.js, validation service emit $DA('instantValidationResult', {}) insted of direct modification of form so page can handle result on its self - FIX: in instant validation proces was missing some parameters we add possibility to have harvest rule in them so instant validation will be as this: array( 'instantValidation' => array( 'enabled' => true, 'validationService' => 'IterSearchValidationService', 'harvest_rule' => "['f:fieldId_0', ..., 'f:fieldId_N']" ) ); 4.0.14 29/10/2013 - FIX: i18 strings overload was chaching to soon and it was not overloading some keys SResManager 4.0.13 29/10/2013 - ADD: redirectWithGet() function in Pxml.js - ADD: possibility to replace history state, it is necessary for some navigation situations: DocumentViewService, TitlesViewService - FIX: custom browser styles identification in getBrowserDependentName() of SResmanager - FIX: app.refDate comparing method, now it is rounded to 1 hour - FIX: missing use in Calendar - FIX: div.AutoComplete styles credits (l.casali egaf) - FIX: pp maximise. Pxml.js 4.0.12 28/10/2013 - ADD: XwIndexLookupSourceNonRestrictive, its like XwIndexLookupSource, but it have one free line - FIX: SApplication make new session just after successful destroy done - FIX: Configurable when binds to config, in case of many canfigs with eventual leading/trailing spaces in config name, did not found config, so we add trimming - FIX: HxTagsTranslator calls xQuery with wrong list of namespaces, it must be an array - FIX: custom data posting Pxml.js in redirectWithPost were doid all trough value attribute. this is buggy in case of big data, so we use