**********************************************************************************
Application notes
**********************************************************************************
1.0.13 03/11/2012
- set home page (introducion to navigation into catalogue)
- remove fast search from 'IndexLayout'
- add new filter field "keywords" and added modifier extension (MF - FU)
- modified render for filters (id 'sf-tsk' and 'sf-usv') now rendered as combo
- modified textual description for section 'tree' (changed in 'Indice')
- modified textual description for section 'history selection' (changed in 'Ricerche')
- modified textual description for crumb 'Ricerca' (changed in 'Maschera di ricerca')
- modified textual description for crumb 'Titoli' (changed in 'Risultati')
- modified database structure to render REL and REV (global chronological rifs) to avoid more accurancy and correct order
- modified document rendering (now showing global chronological rifs)
- deactivate link ti system pdf in case of 'UdType' == 'PG'
1.0.12 23/10/2012
- fixing label "Comdizione" into "Condizione"
- fixing TitleRow.class when record has no image linked
- set id attribute on th and headers attribute on td
1.0.11 16/10/2012
- fixing url composition to referenced site link
- fixing pagenavigation counter info when navigate from A to PG and from PG to A
1.0.10 16/10/2012
- populating help
1.0.9 15/10/2012
- modified my.runtime.js execNodeAction function to send query to titles service instead just execute node call
- added rel attribute in TreeNode.xsl (its used for base64 encoded node query)
1.0.8 12/10/2012
- override SelTree.class and seltree.xsl (to complete);
- override SortableSearchFormContent.pxml (to complete)
- add graphic render for PCCP (provincia) in titles
modied files:
TitleRow.class
titlesAndDoc.pxml
my.css
Stemma-XX.png (where XX could be "BL", "GO", "PD", "PN", "RO", "TS", "TV", "UD", "VE", "VI", "VR")
1.0.7 10/10/2012
- override PageNavigator.class to avoid best discrimination while render Titles Page and Document Page;
modied files:
titles_order.config.inc
PageNavigator.class.php
titlesAndDoc.pxml
default.properties (EN and IT)
1.0.6 09/10/2012
- modified title header to avoid multiple row disposition;
- modified title composition in according to new header:
- modified tree controls;
- modified document view (document.xsl)
- draft tree help content;
modied files:
titles_order.config.inc
my.css
tree.css
access-no-small.png
access-yes-small.png
closedArrowFolder.png
openedArrowFolder.png
1.0.5 05/10/2012
- added new lookup def: indexDefaultLimited with both patterns ' §^§' due to filter double indexed values
- integration list of fields interested to "filter double indexed values" ("MyFilterObject.class.php")
- label correction in "document.xsl" (changed "Provincialele" in "Provinciale")
1.0.4 03/10/2012
- resizers adjust
- implementation of specific element container ("span") with specific class ("bap-a", "bap-pg", "access_yes", "access_no") in TitleRow.class.php
modied files:
TitleRow.class.php
my.css
access-no.gif
access-yes.gif
bap-a.png
bap-pg.png
my.runtime.js
help.pxml
document.xsl
TreeNode.xsl
1.0.3 02/10/2012
- set specific class for colums 1, 4 and 7 (for element td) inside TitleRow.class.php and declarate my.css in according (style for ".TitlesCell_document_variant_center")
- set style (max-width:100px;max-height:100px) for "img" inside TitleRow.class.php and changed corrispondent thead label in tiles_order_config.inc
- adjusted height of Storico box
- uniformed image gallery from titles and document
- added help system pahes in ui.component.help package
modified my.runtime.js in order to handle different help popups for main center content
this is done by capturing onAjaxContentLoaded event, and setting internal variable with it, then when
help call is in arrive, we use saved ajax content type to distinguish help type.
modied files:
help.config.inc
popup.config.inc
app.config.inc (added new help service)
MainHelp.class.php
TreeHelp.clas.php
my.runtime.js
help.pxml
layout.pxml (changed actions on help butons)
- configuration integration for supporting help content casistits ('SELECTONHISTORY', 'FASTSEARCHFORM', 'SEARCHFORM', 'TITLESFORM', 'DOCUMENTVIEWFORM')
modied files:
help.config.inc
DocumentViewFormHelp.class.php
FastSearchFormHelp.class.php
SearchFormHelp.class.php
SelectionHistoryHelp.class.php
TitlesFormHelp.class.php
my.runtime.js
help.pxml
layout.pxml (changed actions on help butons)
- modify call to related document in document.xsl ('Pxml.xw.loadDocumentQuery' changed in 'Pxml.xw.loadDocumentQueryNoSel')
1.0.2 01/10/2012
- some experiment with header h2 in "document.xsl"
- creating "emula_fieldset_ricerca" in "my.css" to avoid conflict between "MySearchFormFields.pxml" and "document.xsl";
- overload some style;
- changed some resource in properties file;
- added resizer into rs/tmpl/layout.pxml
- changed header height
- added glyph button help for widget title
- added glyph button lookup for search form
- added icons to widget title for opening help popup option
1.0.1 27/09/2012
- created Irvv principal services, due to necesity to change PageNavigator layout position
- modified app.config.inc in order to use new services overload
- added fast search form
- fixed developers configs
- removed fieldlayot skin forms.config.inc
- renamed css styles about left side boxes (widgets) inside layout.pxml, index.css, my-runtime.js
- changed favicon.ico
- modified .w_prev16_glyph:hover style
- modified style of document / titles navigation
- configure filter, skins, and order rules
1.0.0 07/09/2012
- created
**********************************************************************************
C O R E notes
**********************************************************************************
--- Remember to change the pxml.php file when a new version in released ---
TO-DO:
1: Imaging, and galleries revision
2: New XW trees handling revision
3: Widget containers and layouts
4: Customised docway lookup source
5: File upload
3.7.35 04/12/2012
- ADD: new posibility to configure clickability of current crumb link
this is done by config param in history.config.inc
crumbs.allowCurrentCrumbActive = {true|false}
3.7.34 03/12/2012
- ADD: possibility to overload crumbs text render for Titles and SearchForm services adding method: getCrumbText($title)
- ADD: media upload handlers classes and scripts
pxmlMediaUploadGate.php
xw/lib/ui/component/edit/MediaRenderer.class.php
- ADD: xml schema file for media upload collection grid
xw/rs/model/schema_media.xml
- ADD: added new javascript uploadMedia event
pxml.edit.js
- ADD: added MediaRenderer template
xmlEditing.pxml
- MOD: i18 labels for media handlers
3.7.33 27/11/2012
- FIX: setlocale on NIX not function so we have to check manually if locale change was done and if not set
then we fallback in fixed array with EU settings for money
3.7.32 26/11/2012
- FIX: add type bool to XmlField.class.php
- ADD: id for Edit forms groups, so we can handle them in JS
3.7.31 24/11/2012
- MOD: continue on standardisation of upload file, upload form template moved from xwdoc to xw
added some nicer form, and modified gate, to accept attachments also for non docway documents
- ADD: jquery 1.8.3, ui.jquery 1.9.2
- ADD: prototype 1.7.1
- ADD: new method in Xml addMissingNodesForSimpleXPath, it will add simple xPath to the xml (making missing nodes)
- DEV: continue devel on BPM module
- MOD: some minor adds in History types
3.7.30 23/11/2012
- FIX: xw.gallery.js missing open/close function
- MOD: crumbs can have more sets of initial text
- ADD: page can set current set nof, if it is configured in pages.config.inc like 'fApp'
- FIX: also when updating a record can arrive less field values (because null or empty) fo a certain entity than other instances of same entity
in the same set of form data posted, so SqlDatabase->saveEntity was fixed
3.7.29 22/11/2012
- ADD: new function in XwResponse
getXwUnit
- FIX: SqlDatabase->deleteChilds() routines bugs fixed
3.7.28 21/11/2012
- ADD: BpmToDOWidget - handle todo tasks for current user
- ADD: XwStoredProcResponse.class.php for stored procedure multiple response handling
- ADD: EE_LUA_ERROR constant
- ADD: root param
- FIX: xml deescaping problem
- ADD: delegated versions of functions for start, finish, and setTask variables
- ADD: BPM_ADMIN layout
3.7.27 20/11/2012
- ADD: BOS Bonita Bpm integration
module: lib/bpm
config: bos/db.config.php
serializable.config.inc
HistoryRecord.class.php
- ADD: xw.gallery.js - for gallery of attachments handling
xw-lib.xsl - call to new js lib
xwDocFileUploadGate.php
- FIX: relations handling in SqlDatabase->saveEntity()
- FIX: corrected SqlDatabase->saveEntity() in case no fields of entity were passed but just
want to update entity table (created or modified).
- ADD: added possibility to handle multiple relations of same records in SqlDatabase
- ADD: added hook XmlDocumentEditActionBase::ED_ACT_JUST_AFTER_SAVE_PART in XmlAutoEditService
3.7.26 15/11/2012
- FIX: fixed all presences of hardcoded 'centerHolder' use
OrderByCommander.class.php
PageNavigator.class.php
CustomOrderByPopup.class.php
SelTree.class.php
ColumnHeaderOrderable.class.php
ColumnHeaderOrdered.class.php
TitlesTableHeader.class.php
xw.runtime.js
xwdoc.runtime.js
MultiDbLinks.xsl
titlesAndDoc.pxml
seltree.xsl
TitleItemsContent.class.php
- ADD: Acl handling at Sql User management
UserSourceSql.class.php
- FIX: isOpen was private in SqlDatabase.class.php
- ADD: new hook at XmlAutoEdit service
AfterAddPart, will be called just after ne pard were added into collection
- ADD: IAcl.interface.php interface for all future Acl handlers
3.7.25 13/11/2012
- FIX: fixed missing namespace in config bind in Mail.class.php
3.7.24 10/11/2012
- ADD: CurrencyFormatter.class.php - it will format
Db 2 UI US normalized number form to EU normalized form
UI 2 DB will remove '.' and then replace ',' with '.'
- FIX: of CurrencyValidator RegExp it was considering 1000.000,00 like valid!! in fron should be couples of numbers
now its not possible, it validate currency for EU_IT normalized form
- ADD: added method isHTML() to Mail.class.php. It is simply a wrapper of PHPMailer->isHTML() method
- FIX: removed '\r\n' argument from trim call in Xml->getNodeValueConsideringMixedElements() because it caused 'r' (and perhaps 'n') char
at the end of text to be erased from returned text.
3.7.23 08/11/2012
- FIX: problem in search form service, it was not considering forceFormAction options param which could arive from crumbs link
3.7.22 07/11/2012
- ADD: Courency formatting, we need format any numeric form (US or EU) in EU so we have first decide if it is already in EU or not and then we
have to apply US to EU formatting done in functions:
money_format_ext
money_format
in DataFmt.class.php
3.7.21 26/10/2012
- FIX: AtLeastOneFieldValidator return message from validate() must not use _L function for field labels because they are already translated
- ADD: added dialect property in SqlDatabase
- ADD: added SqlDatabase->quote() method to quote field and table names
- MOD: added identifying relationship concept in document childs deletion. If a relation is 'identifying' when deleted entoty is also deleted
and not only the relation.
For 1-n, 1-1 relations fk is set to null (fk must be nullable).
In m-n relations only row in relational table is deleted, not the entity.
- ADD: UserProfileSourceSql.class.php
UserSourceSql.class.php
This two classes handle user acl persistance in MySql (ar any Sql db)
we had to make bunch of fixes to put all together, her eis list of modified files:
UserProfileSourceACL.class.php - changed getProfile method params
User.class.php - changed and fixed user rights mapping and filtering
SUserSourceFactory.class.php - added new source type
SUserProfileSourceFactory.class.php - added new profile source file
IUserProfileSource.interface.php - getProfile method param type changed
serializable.config.inc - adde serializable
MultiLoginWarning.class.php - fixed url for redirect
SApplication.class.php - fixes done
- ADD: method SqlDatabase->execDmlStatement() for execution of insert,update,delete queries wich don't return resultests but only affected rows.
- FIX: imported ASqlSelection class in SqlDatabase. ASqlSeelction could be istantiated as is in some cases and not just be returned after query
execution, to have an empty initial ASqlSelection object.
- ADD: added possibility to configure charset and content-type of an email (mail.config.inc) in Mail.class.php
- ADD: added Optimistic Concurrency support in SqlDatabase.class.php. If a node has last-modified attribute SqlDatabae->saveEntity()
compare it with modified column from entity table, directly when permor update of the entity.
If affected rows are 0 then it means that entity user is trying to update has already been updated by someone else
in the meantime.
To do this 'created' and 'modified' columns were added to entity table.
3.7.20 25/10/2012
- FIX: adFileUploadGate.php -> in xwDocFileUploadGate.php
this pull changes in :
xwdoc.runtime.js - added new functions in XwDoc.Client uploadDone, uploadAttach
xwdoc-lib.xsl - added new common template: xwdoc.uploadFileForm with param id (idIUnit of document/folder)
- MOD: changed skincollors of search form actions
- ADD: internal variable fFormAction of XmlAutoEditFormContent.class.php for possibility to distinguish
what we are doing in render time of content
- FIX: in forlderTree management refactored §1§ in $1$
3.7.19 24/10/2012
- MOD: SqlDatabase->getGuid() now have to use specific database dialect funztion to generate UID. Default is MySql UUID()
- FIX: implemented method deleteDocument in SqlDatabase class
- FIX: fixed some comments in SqlDatabase class
- FIX: null $db parameter is now handled in ASqlSelection
- FIX: deleted a debug check in SqlSelections
- FIX: null $sqlSelection parameter is now handled in SqlXmlResponse
- FIX: catched EmptyResultWarning exception in SqlQueryLookupSource->exec()
- MOD: object validation system revisited, now each object validator vill generate message for him self
and SFormFieldfactory will render it in its object form container
- we review also fields group requiring (we can mark gorup of fields with the same require group label)
then there is AtLeastOneFieldValidator.class.php validator, it will chek presence of at least one
value.
modified files:
DataField.class.php - FIX: it must skip IObjectValidators in validation
IDataValidator.interface.it - FIX: static method for validator creatin must strip string separation from parameters array
AtLeastOneFieldValidator.class.php - ADD: new validator, this validator must be added on XmlObject and it will hangle
validation groups (labelled in required attribute with the same label)
- FIX: form edit content must draw object error message
SFormFieldFactory.class.php
XmlModel.class.php
XmlObject.class.php
SXmlFormFieldFactory.class.php
xmlEditing.pxml
- ADD: xsl internalisation: there is posibility render internalised strings directly from xsl, internalised label(key)
will have to be set in xsl like this:
xsl nee dnew xmlns too:
example:
...
...
3.7.18 23/10/2012
- MOD: modificata pagina di login.pxml in lib/commons/rs/tmpl con file login.css in lib/commons/rs/css
- ADD: added images for login and logout page bgrLogin.png and bgrLogout.png in lib/commons/rs/css/img
3.7.17 22/10/2012
- MOD: added protected method doHistory into SearchFormService so we can overload it
- ADD: xwdoc desktop new icons
3.7.16 18/10/2012
- ADD: 2 new glyphs 23x23 home23_glyph and userpanellight23_glyph
- ADD: new serializabled classes
- MOD: db.xw.XwSelectionsHistroy refactored into db.SelectionHistory
- FIX: missing warning code EmptyresultWarning
- FIX: fixed debug notice while xPath query returns empty nodes in core.xml.Xml
- ADD: new optional core module sql
containing all wrappers for Sql RDBMS communication
- ADD: new generalisation interfaces
a: IDatabase.interface.php
-> XwDatabase
-> SqlDatabase
b: IResponse.interface.php
- XwResponse
- SqlResponse
c: ISelection.interface.php
- ASqlSelection
- XwSelection
- ADD: IFilterObject.interface
-> db.xw.filter.FilterObject
-> db.sql.filter.SqlFilterObject
- ADD: sql syntax dialect management and diferences handling
dialect must be specified in db.config.inc
like this prior of connection class
....
'dialect' => SXwDatabaseFactory::DB_SYNTAX_DIALECT_MYSQL,
'class' => 'db.sql.EcmAnagraficaDatabase',
...
possible values see in : SXwDatabaseFactory
- FIX: comment in UIComponent
- ADD: RegexValidator.class.php
- FIX: empty value cant be consider non valid EmailValidator
- FIX: xpath namespace handling Attachment.class.php
3.7.15 16/10/2012
- FIX: DocumentViewContent constructor now can receive $pager also like NULL
3.7.14 15/10/2012
- MOD: modified fData handling of TitlesService in case fCmd == 'search' it can transfer base64 encoded query
in this case string must start with 'B64'
- MOD: XwTreeService added base64 encoding for query in front of xsl transformation
3.7.13 08/10/2012
- FIX: https / http handling there are 3 combinations
A: app http, login http
B: app https, login https
C: app http, liogin https
add new config value: 'livesite.forceHttpsOverride' => false, //if true force
https in all generated links even if request was http
3.7.12 05/10/2012
- FIX: xml dumping from model in case of collection was not safe against loose of original
nodes not presented in schema
- FIX: of eroneous use of DOMNode->nodeValue, folowing W3C spec NodeValue is not suitable o
for mixed XML content handling
- ADD: First BPM workflow addings
- ADD: filter option on SearchForm 'fSkipRefineFieldRender' which if set to true means that form will skip
fSelectionID hidden status field
- MOD: Function 'loadSearchFormCustom' in xw.runtime.js was modified with one new param options (any hash map of data)
- MOD: changed filter field 'fulltext' in FilterObjectXwdoc.class.php
3.7.11 03/09/2012
- ADD: resize function to Pxml.Resizer in pxmlscu.js in order to hook to resize window event, it can be
done by like this in layout.pxml
$j(window).resize(function() {
window.resizer.resize();
window.resizerLeft.resize();
});
3.7.10 02/10/2012
- ADD: added class Skin_MarginTopBottom in skins.css
- FIX: creation of one DB connection had possibility to send connection params override, this was done
just for connection part of db configuration (host, port, etc..) now it can send also other config
params. (old version is still suported too)
- FIX: fixed encodinf of error page
- ADD: help service system
added help.config.inc f.e.:
'help.default' => 'MAIN',
'help.cfg' => array(
'MAIN' => array(
'contentCls'=> array('ui.component.help.MainHelp', array('info', 'help')),
),
'TREE' => array(
'contentCls'=> array('ui.component.help.TreeHelp', array('info', 'help')),
)
)
this service load some PopupContent into popup, help execution action is done
by js proxy action:
$DA('loadHelp', {fHelpId:'< help content configuration ID>'});
modified files:
HelppopupService.class.php
pxml.runtime.js
3.7.9 01/10/2012
- FIX: margin/padding of Title text in popup and titleskins (skins.css)
3.7.8 27/09/2012
- MOD: DocumentViewContent will now accept pager UI like NULL
- FIX: Search form was not handling correctly fpfx in any case (problem with Fast search form binding)
- ADD: new search form loading custom method in xw.runtime.js (loadSearchFormCustom)
- FIX: padding in Custom order popup (due to new skins)
- FIX: removed attach column type from custom order by columns lists
3.7.7 26/09/2012
- ADD: Tree access can now be filtered due to an existing selection that reduces
the "spectral analisys".
Changes affect my.runtime.js (two new methods with filter parameter),
XWTreeService.class.php and XWDatabase.class.php. PHP added parameters
all have a null default so no impact is expected on existing code.
- FIX: synchro problem in Zend persistor (there were no concurency handled)
- ADD: new glyphs
- FIX: some css in skins
3.7.6 23/09/2012
- FIX: problem with character cut curmb.class.php
3.7.5 20/09/2012
- ADD: Added a new command to the execute() method of DocumentViewService class
that allows to load the first document of a query without taking care about
the query itself and with no impact on selection Tree.
Added also a corresponding Pxml.xw.loadDocumentQueryNoSel() javascript
method to call that execute() option.
3.7.4 12/09/2012
- MOD: skins css and templates was updated to new css version instead of images versions
so we have new possibilities to configure skins in the future
3.7.3 07/09/2012
- MOD: changed folder tree handling in XwDocWayDatabase.class.php, added new parameter to all folder tree functions
(there were done changes to WS too): $maxNumDocuments - -1 => ALL; 0 => nothing; n => limited to N
for this fact we changed more files:
folderTree.xsl (m)
folderTree.runtime.js (m)
altro.png (a)
folderTree.css (m)
FolderTreeService.class.php (m)
XwDocWayDatabase.class.php (m)
- MOD: there were add transaltion of fixed config lookup values, this is not all time wanted, so we add configuration parameter
to the lookup so you can turn off lookup label translation
attribute in fixed lookup values config file
'lookup.disableLabelTranslation' => true
3.7.2 05/09/2012
- FIX: problem with translation of labels in AConfigLookupSource.
case of labels with escape sequences
there is conflict with label path mapping, so we have to disable translation
using configuration value lookup.disableLabelTranslation = true;
3.7.1 04/09/2012
- INCOMPATIBLE: removed closing PHP '?>' from end of files
ATTENTION!!!!
there is prohibited use trailing '?>' in *.inc and *.php files!!
it can cause empty spaces inside responses where it is not requested
we removed temporary bufering during include due to performance boost [0,002 sec/medium simple php].
Compatibility walktrough:
use eclipse for replace all trailing '?>' with empty string
use regular expression search: '(?-m)\s*\?>\s*$' on *.inc and *.php files
- MOD: added new param $strict to getXmlObjectById of XmlModel.class.php, with default value true;
it means that in case of failed lookup it will throw exception, if strict is false
it will silently return null in case of fail
3.5.23 04/09/2012
- MOD: removed closing PHP '?>' from end of files
3.5.22 07/08/2012
- FIX: Calling the loadFirst() Web Service method doesn't use shared object
extension if required. Uses Web Services 3.7.4 (07/08/2012 or higher)
3.5.21 03/08/2012
- FIX: XwIndexLookupSource & XwThesaurusLookupSource. Check if
lookup parameters are set in passed array before setting them to
internal parameter array. If not a default value (-1) is used.
- ADD: Translation of the lables of fixed (custom) lookup values.
3.5.20 25/07/2012
- FIX: tiny MCE editor reseting in widget properties editing
- FIX: some bugs in titles preview widget
- FIX: element was not updated on right plac ein xml, it was inserted like last child of current parent
now it corectly replace old element, bu it must exists, so it must be also in template
- FIX: lookup popup title in case of index source there were not allowed chatr #
3.5.19 23/07/2012
- MOD: ldap search result formatting and query
- ADD: core.template.SimpleStringTemplate class
- ADD: function createElementLikeChild in Xml class
- FIX: problem with auto inserts in collection and isNew flag
- FIX: removed custom doc helpers
3.5.18 20/07/2012
- ADD: anyslider and jscrollpane jQuery plugins
- MOD: titleswidget can choice between slided document preview or normal titles list
- REM: save document from XwDocWayDatabase (it was overriding without sense)
- FIX: bug with escaping of Html formated document parts
3.5.17 14/07/2012
- ADD: possibility to create widgets on application level
- ADD: configurabilty of skin variant for Widget header adn background
3.5.16 09/07/2012
- ADD: Xml.class.php - setXslFile() - the method now handles in a special way XSL tags having "i18n" inside their "class" attribute,
tags' content is automagically translated through the 'default.properties" bundle.
- ADD: XwDateFormatter.class.php - now handles 15 chars date and time notation (20101207T151503 <-> 07/12/2010 15:15:03)
- FIX: XmlObjectCollection.class.php - fixed bug which prevented i18n translation on tables' header for collections (XmlAutoEditService)
- ADD: XmlAutoEditService.class.php - added "event" parameter to $options array in followUp calls
- MOD: XmlAutoEditService.class.php - new handling for a 'cancel' event raised from the editing of a new record: if 'newCancelFollowUp'
config properties is set to true, the service do nothing and just execute the followUp to the caller service (instead of
calling explicitly the HistoryService via Javascript)
- ADD: XmlDocumentHelper - added new method 'getForceFUpOnCancelNew' that retrieves value of the aforementioned 'newCancelFollowUp'
configuration parameter
- MOD: XwIndexLooupSource.class.php - exec() method - case of $where parameter empty is collapsed on the case of 'start' value
3.5.15 09/07/2012
- ADD: Introduced new set of functions in XwDatabase.class.php.
Those functions allows you to call a plug in, in syncronous or asyncronous mode
and wait for a valid result bey getting the asyncronous progress state.
callPlugin()
callPluginAsync()
getSPluginProgress()
- ADD: Introduced new set of functions in XwDatabase.class.php.
Those functions allows you to call a stored procedure, in syncronous or asyncronous mode
and wait for a valid result bey getting the asyncronous progress state.
callStoredProcedure()
callStoredProcedureAsync()
getStoreProcedureProgress()
3.5.14 06/07/2012
- ADD: new widgets:
htmlwidget - this widgets can have any html or any UI component as content
- FIX: widget are under devel so we do progressive fixes during tests:
desktopwidget
titleswidget
- FIX: language detection, we add header for each response in SApplication
- ADD: ldap search results components
- ADD: function on client side 'redirectWithPost : function(url, data)' ,so ja can skip to new page sending data in POST
there is hidden form generation and its submit automated.
- ADD: function on client side for dcument load, in selection done out of current set,
so it will set new current set, and afterwards it will load document
- ADD: home to other pages connection, we can fire some home action (action on some home widget) this will
force application load, application will recognise parameters and it will load what is requested
1: widget fire event
2: current js will capture it and it will redirect to index
3: index layout will set current DB, choice desktop, and set what necessary into session
4: js will handle different ajax requests depending on source widget from home
- FIX: there were hidden problem with Database handles creation, all config helpers were returning db connection ID
and not real DB id (in case of existing current db) so we add specific method 'getDbConnectionID' for who need Connection ID of current
but in 'getDbID' we return real handle ID of curent DB
3.5.13 29/06/2012
- MOD: Using the same FilterObject class within different search forms can cause a mix of fields coming from
each form. In order to avoid this behavior, the SearchFormService.class.php has been changed so that
the FilterObject class instance stored into the session is form specific (using the 'FP', that is the $this->_fFpfx element).
3.5.12 28/06/2012
- MOD: removed jQuery 1.7.1 use, IMPORTANT: CHANGE REFERENCE TO THIS VERSION OF JQUERY INSIDE app.config.inc!!!
- ADD: new widgets:
desktopwidget - docwaylike desktop component
swidgetsourcewidget - listo of widgets usable in some containers
widgetcontainerwidget - widget container for home page
titleswidget - widget whih show some configurable count of titles preview
- ADD: db.xw.model.XmlObjectBool like model class
- FIX: added missed field attribute 'uiAddCss' attribute handling
- ADD: added missing method 'renderHost' in IUISkin.interface.php
- FIX: work on widgets (not specified fixes, we are stil in devel phase)
- ADD: admin page and admin layout, this need config copy into application level
pages.config.inc:
'ADMIN' => array(
'freeAccess'=> false,
'contentCls'=> array('ui.component.AdminLayout', array()),
'css' => array(
array('name' => 'widget.css', 'ns' => '#widget', 'type' => 'css'),
array('name' => 'admin.css', 'ns' => '#xw', 'type' => 'css')
),
'scr' => array(
array('name' => 'pxml.edit.js', 'ns' => 'commons'),
array('name' => 'pxml.widget.js', 'ns' => 'widget'),
array('name' => 'admin.runtime.js', 'ns' => 'xw')
),
'cfg' => array(
)
),
- ADD: new method in IConfig.interface.php
'getParamSet' -> this return list of attributes for selected path, useful in XML config
in array config it return single value enclosd in array for compatibility.
- ADD: jQuery masonry plugin (experimental)
- FIX: problem with start drag of widget when clicking some action icon. We add class 'PXML_MouseEventsTrap' for js event trapping
- ADD: SimpleCheckBox editing component
- FIX: XmlObjectBool.class.php , there were problems with bind and dump in text in case of new
- FIX: All helpers were working with db considering just one possible DB of certain connection configuration
function getDbID of helper were returning in case of current db presence just connection config id
not connection ID, so if there weremore connections of the same connection config, it were woking just
with one. So we add new method in helper: getDbConnectionID which do
3.5.11 27/06/2012
- ADD: (rpierpaoli) Added new "filterChildrenByOpts" method to UIContainer.class.php.
This new methods allows to extract a filtered array of children from the UIContainer.
Filters are expressed as an associative array where keys are names of possible children
options and values can be either simple strings (check if equal) or "preg" regular
expressions (check if matches).
A $logicOperator parameter can be passed to the method: values are LOGICAL_AND or
LOGICAL_OR (class constants), telling whereas to put conditions together in OR or AND logic.
3.5.10 12/06/2012
- FIX: (czappavigna) Complete CodDescFormatter, CodDescrLookupSource and XmlCodDescrField
- ADD: (czappavigna) Add maxlength attribute to SimpleTextInput if class LenghtValidator is used
- ADD: added tinyMCE featured notes editor, it is possible to assigne like UI class for field in schema
'factory:TinyMceEditor' and it will render rich html editor for textfield content
ther eis necessary then in xsl display it on this way (due to escaping):
important is this: disable-output-escaping="yes"
Important: add 'TinyMceEditor' => 'ui.component.form.TinyMceTextArea' in form.config.inc
added client side javascript singleton 'Pxml.Edit.TinyMce' for handle tinyMCE editors
- FIX: form fields prior this version were submited only if they were not empty strings, then
during bind there were every time default value : '' this will not cause any problems if
all fields of model are all present in form in live style or hidden, but if there is custom
form which will render just some field from model, all non edited and non present fields
will be emptied during bind, this is not correct behavior, so we changed it. We add new function to
SApplication: getFormInputVar() without default value. So if there is no form field
model field will catch this and it will not change its state. If there is empty value
arrived from form, model field will empty its value too. This force changes in this classes:
DataField.class.php
FilterField.class.php
XmlCodDescrField.class.php
SApplication.class.php
pxml.ajax.js
- FIX: harvesting values on server side (FormFieldFactory) was looking for eventual model field from harvest rule
only in current XmlObject, so we add possibility to check whole model, if not present in place.
- ADD: add posibility to load arbitrary javascript file from javascript itself, added method in pxml.js
function loadScript(scriptUrl, callBack), this function will call 'callBack' when script was loaded
we use this for tinyMCE script loading so its called just when its necessary
3.5.9 08/06/2012
- FIX: (fcappelli) Missing check on backDiv element in object PopupMan in file pxml.js. Fixed.
- FIX: (fcappelli) Updated old core version number in file pxml.php from 3.5.6 to 3.5.9.
3.5.8 08/06/2012
- ADD: (rtirabassi GWT001337) Changed the behaviour of the Crumb.class.php. Now, according to some
configurations available in history.config.inc, the application can define the color the current
Crumb will have and can also define the maximum length for the showned crumb. Even if the crumb
text is cut, the 'alternate' on it will show the full title. This change also reset the default
crumb color to #ff0000 that was wrongly changed.
3.5.7 08/06/2012
- FIX: (rtirabassi GWT001321) When calling the TitlesService.class.php with a 'caller' parameter, the
'fOrderById' and 'fOrdeByDir' were ignored. Fixed.
3.5.6 08/06/2012
- MOD: We can set multiple XmlEditing Hook actions in configuration for each model, full class names have to be
separated by ',' , we changed this files to handle new situations:
XmlAutoEditService.class.php
XwDocumentHelper.class.php
3.5.5 07/06/2012
- FIX: FormFieldFactory connection with data in case of EditFormContent
- ADD: method setLikeNotNew into XmlField , when some collection or some Xml part born in code
and it is set by code, there will not be any bind so it will remain like new,
and so it will not be domped in output so using this function we mak Xml part like not new
- MOD: due to modifications on XwDocumentHelper.class.php from 3.3.27 we do not neew specified model helpers
so we change models : XwDocPostItModel.class.php and XwDocRpaCcModel.class.php, in manner that they wil not trow exceptions
if not overloaded with method gethelper.
3.5.4 06/06/2012
- ADD: we add dynamic update on html select options, so there is possible to make more depending combos
in one form. F.e. One combo select cathegory and second depending one select subcathegory.
for this we made changes in this files:
- ADependingConfigLookupSource.class.php example of one depending lookup source
this source use this configuration:
'lookup.dependingSets' => array(
'CATHEGORY' => array(
'DEFAULT' => array( '-1' => '...' ),
'DOCINTRANET' => array( '-1' => '...', 'aziendale' => 'Aziendale', 'documenti' => 'Documenti')
),
'SUBCATHEGORY' => array(
'DEFAULT' => array('-1' => '...'),
'aziendale' => array('-1' => '...', 'modulistica' => 'Modulistica', 'manuali' => 'Manuali e Guide',
'matcorsi' => 'Materiale corsi', 'siglario' => 'Standard Aziendali', 'convenzioni' => 'Convenzioni'
),
'documenti' => array('-1' => '...', 'procedure' => 'Procedure e Norme', 'comunicaz' => 'Comunicati',
'ordini' => 'Ordini di Servizio', 'personale' => 'Contratti di Lavoro', 'modello' => 'Modello Organizzativo', 'ambiente' => 'Ambiente e Sicurezza'
)
)
)
where SUBCATHEGORY depends on value selected in CATHEGORY combo, CATHEGORY combo values are depending too
on some other combe put in fron of cathegory (in this case there is repertorio selection
- BaseLookupSource.class.php - we add constants to represent different setting of lookup.config.inc, cause it starts to have mny different values
we recomand use this constants instead dirrect strings
- LookupService.class.php
added new command: 'startCombo' this will reload options into html select element, this command is just initially
handled, after lookup initial settings done it will be translated to command 'start'
- FormSkinnableFieldPartBase.class.php - we had to add new slave type for form fields:
example :
this new slave will generate events for combos options update on client site, so if one combo options list
depend on some form field value, this field have to have new slave in edit properties, in schema.
- FormSkinnableFieldPartWithListBase.class.php - we add lookup values management for Javascript command generation
in fact its the same like to call lookup action, when we need update select options list. so we add to select
element its lookup function, this function will be called on JS side when, is neccesary
- SimpleSelect.class.php - it like file before
- SelectOptions.class.php - it like file before
- forms.pxml - it like file before
- forms.css in commons some Note dimensions fix
- pxml.edit.js added whole select options dynamic update
- XwRepertoriesLookupSource.class.php - done some fixes for better repertories use, there was
add also one global firter xpath which will be add to current xpath filter
this xp is set be config parameter: 'filterXp' => '(./@numero>=\'28\' and ./@numero<=\'34\')'
in lookup.config.inc in used handler settings
3.5.3 04/06/2012
- FIX: there were problem to recognise renderer in old manner in schema
XmlModel.class.php
- ADD: missing icons for plain text attachments
- MOD: xw trees xsl TreeNode.xsl reference to My.Client -> Ad.Client
- FIX: history forced command have to be null not '' cause we use isset() for test
3.5.2 01/06/2012
- ADD: new functions into XwDatabase.class.php
general purpous:
protected function waitForLastObserverResult() - make async operation sync (simulation with timeout)
public function callPlugin($pluginName, $function = '', $params = array()) - general function for call xw plugins
xw navigation trees:
public function getNavigationTreeList() - get trees list
public function getNavigationTreeNode($id) - get tree node
public function getNavigationTreeRoot($TreeId = '') - get tree root node
public function executeNavigationTreeNode($id) - execute node action and return selection id which can be used to make query
- ADD: other neccessary files relative to the new XwTrees handling
XwService.class.php - main tree service
xw/tree.config.inc - in conf-common in this form:
/*
* tree config
*/
'xw.navigTrees' => array(
'default' => array(
'ID' => 'default', //id tree
'DB' => 'DB_' . constant('__APP_DEFAULT_SET__'), //db name prefix for tree navigation commands
'Xsl' => 'xw#TreeNode.xsl', //one node xsl transformation
'followUp' => array(
'default' => 'TitlesService',
'titles' => 'TitlesService',
'document' => 'DocumentService'
)
)
)
xw#tree.css - css for tree
xw#css/img/tree directory wit tree image assets
xw#TreeNode.xsl - xsl for nodes formating
- FIX: AttachmentService.class.php strrch($where, $what) returns rest of string from $what possition
and not numeric position
3.5.1 31/05/2012
- INCOMATIBLE: we had to change DocumentActions.class.php constructor call attributes, now we send in
whole document reponse so during actions creation it is possible to make
custom actions more simple examining also directly document
we create new class in xw : ui.component.DocumentActions
for general use this actions have single action 'Modify', there is best practice
to derive application document actions from this class, or do it on the same way
then we add also template for that class in xw.menu.pxml
compatibility walktrough:
1: adjust DocumentActions for new system, use xw::ui.component.DocumentActions for example
- MOD: there are several fixes and modifications done finalising editing in Dialog
- ADD: we add new OnDemand editing of some XmlObject part, it means that some xmlpart in root form
is in read only custom layout form, and there is editing request and that part will be edited in dialog
for this purpose we add some new things in schema structure:
we add renderes alternative element which can be add in edit element.
examle:
We also add new editingTypes: group_dialog, invisible_group_dialog this 2 types are conected to
renderers. type="group" is used while xml oject does part of parent form
and type="dialog" is used while there is edit dialog on
options are used like values for constructor call like $options array
for this system we made many changes and fixes in this file list:
EditFormContent.class.php - validation message separatet for object and field by separator
SFormFieldFactory.class.php - validation message separatet for object and field by separator
XwDocumentModel.class.php - possibility to skip validation on demand
IXmlField.interface.php - changed params in function getRenderer
XmlField.class.php - modified editparams parsing
XmlModel.class.php - new renderers in edit handling
XmlObject.class.php - many changes for renderers and backward compatibility, changed decision if field is simple or not, and so on
XmlObjectCollection.class.php - new dialog and renderers system
XmlAutoEditService.class.php - added support for new dialog and on demand editing
DialogEditFormActions.class.php - Dialog edit form actions (this is barely new class)
OnDemandEditRenderer.class.php - new
SimpleValuesListContent.class.php - new
SXmlFormFieldFactory.class.php - new renderers support added
xmlEditing.pxml - new templates for OnDemandEditRenderer, SimpleValuesListContent
- MOD: added missing dumpInDom function parameter $filterOutEmpty to all classes.
IXmlBindable.interface.php
XmlCodDescrField.class.php
XmlField.class.php
XmlObjectSkip.class.php
XmlObject.class.php
XmlObjectCollection.class.php
3.3.29 30/05/2012
- ADD: add EmailValidator.class.php and value in errors.properties and serializable.conf.inc
- ADD: XwThesaurusLookupSource.class.php, search and navigation in thesaurus
- MOD: DocumentViewServices.class.php and XwDocumentHelper.class.php modify document model load method
3.3.28 30/05/2012
- FIX: edit dialog forms management
- fix close button action so it cancel also edit of xml part
- possibility to specify on popup skin option 'escapable' if true dialog can be closed by esc
on edit dialog we can catch well this event to call cancel edit so on edit dialog escapable is forced to 'false'
- MOD: refactor of Pxml.PopupMan in pxml.js, so it support multiple stack of modal dialogs, so we can handle
lookups from edit dialogs (errors and so on)
- FIX: in onAjaxContentLoadedEvent there can be called the same event handler also from
non AjaxProxy so we have to handle this differece
- ADD: html_base.xml template for head will render automaticaly alsy link to jquery style
- ADD: function getCurrentModelId() for mantain form with XwDocumentHelper
3.3.27 29/05/2012
- MOD: added rendering of all popup destination dirs into HtmlBody (so we can use more destination divs for dialogs) => eventual multi dialog
editing. Modified files:
SPopupHelper.class.php (smal fix)
HtmlBody.class.php
html_base.pxml
- MOD: added handling of edit order for mixed elements (attribute editOrder='first|last')
- MOD: ctor comment in APopupContent
- ADD: generalised ui.component.dialog.XmlPartEditorDialogContent
- REM: removed ui.component.dialog.WidgetConfigEditorDialogContent was substituted by XmlPartEditorDialogContent
- MOD: XwDocumentHelper.class.php was modified for support multiple models for one app set. There were document.config.inc modifications done:
this is example of new one:
/*
* Document definitions
*/
'document.default' => constant('__APP_DEFAULT_SET__'),
'document.definition' => array(
constant('__APP_DEFAULT_SET__') => array(
'dbId' => constant('__GLOBAL_DB_ID__'),
'xsl' => '',//document.xsl',
'menuClass' => 'ui.component.DocumentActions',
'ud' => '', //DOCUMENT_MODEL', //this can be empty, if its empty model must be specified , from outside using 'fEditedDocType' variable
'editFormActions' => 'ui.component.edit.EditFormActions', //edit form actions global default will be deprecated
'editFormContent' => 'ui.componen.XmlAutoEditFormContent' //edit form content class like global default will be deprecated
)
),//end of document.definitions
/**
* models map udTypes to schemas
*/
'document.models' => array(
'DOCUMENT_MODEL_TEST' => array(
'modelClass' => 'db.xw.XwDocumentModel',
'rootElement' => 'PLANT', //REQUIRED!!!!!
'model' => 'schema_doc.xml',
'template' => 'template_doc.xml',
'followUp' => array(
'default' => 'service.ajax.DocumentViewService'
),
'editActions' => array(
//XmlDocumentEditActionBase::ED_ACT_JUST_BEFORE_EDIT => 'db.xw.edit.JustBeforeEditActionFOLDER',
//XmlDocumentEditActionBase::ED_ACT_JUST_BEFORE_SAVEDB => 'db.xw.edit.JustBeforeSaveActionFOLDER'
)
/* ADDED */
//edit form actions used for form generated for specific model
'editFormActions' => array(
'default' => 'ui.component.edit.EditFormActions',
'SomeTagName' => 'some actions class',
),
'editFormContent' => 'ui.componen.XmlAutoEditFormContent', //edit form content class
)
),
XwDocumentHelper will examine parameters and it will decide in this order:
ctor param > post/get > globalVariable > error
we use global variable instead of session so its request scoped, so each form have to hold current edited model id in state, so we did modify
also in XmlAutoEditService.class.php constructor
- MOD: added new dialog destination div in popup.config.inc
'popup.divs' => array(
'default' => 'popupDomDragDiv',
'edit' => 'editPopupDomDragDiv'
),
- MOD: added new function into UIContainer.class.php insertChild($ch, $where) : $where = {'first','last'}
- MOD: in SPopupHelper function getDialogDiv handle default dialog div
- ADD: new editType for XmlObject was added 'dialog' in this case some XmlObject
from some collection will be handled in dialog for this management we made
changes in files:
pxml.edit.js
pxmlscu.js
XwDocumentHelper.class.php
XmlFiled.class.php - isNew handling
XmlObject.class.php - isNew handling
XmlObjectCollection.class.php - added clearNewNonUsed() function,
cause if we call edit dialog, then we have clear all new non used
cause we can cancel operation, but in model XmlObject were already created
XmlAutoEditService.class.php - here we add:
new execute actions: savePart, cancelEdit_part
added functions: pushCurrentTarget() will save target,formname in stack
popCurrentTarget() will restore target,formname from stack
makeEditFormDialog() this will render form in dialog
we made some changes in form generation too, for correct selection of actions and content classes
- ADD: class XmlAutoEditFormContent for editing form in dialog
- ADD: XmlPartEditorDialogContent (is used also by widget config edit)
- MOD: CollectionValuesGrid.class.php, this class will skip all collection lines which are new, and without values
- ADD: DialogEditFormActions.class.php this class will render edit dialog actions
- MOD: SXmlFormFactory.class.php we call clearNewNonUsed() on collection before it will be drawen by Grid
- ADD: new styles in edit.css
- ADD: template XmlDialogAutoEditFormContent in xmlEditing.pxml#xw
3.3.26 28/05/2012
- ADD: XwDatabase.class.php add methods for searching and browsing of thesaurus
- ADD: CodDescr input, formatter, lookupSource.
- FIX: pxml.edit.js modify for call addCheckForVisibility
- MOD: XwDocumentHelper.class.php added default into function getEditFormContentClass, we set defaultly: 'ui.component.XmlAutoEditFormContent' to mantain
compatibility
- FIX: in autoedit xml there were problems with initialisation of XmlObject for mixed xml (self value and attributes too)
fixed files: SXmlFormFieldFactory.class.php in method 'addObject' moved setup of object in front of other operations
- FIX: Grid columns generation for XmlObjectCollection, in case of mixed element (self value and attributes too). it was not
considering self value like grid column, fixed in XmlObjectCollection.class.php
- FIX: problem with form content class (adding from 3.3.23), if in document.config.inc was 'editFormContent' => '',
it goes in exceprtion.
3.3.25 25/05/2012
- MOD: SApplication can collect arbitrary script during execution/render process, this script can be then rendered like
page load event or it can be add in tail of AjaxResponse,
for this handling we add new functions in SApplication:
public function addGlobalJsForExcute($js),
public function getGlobalJsForExecute(),
public function resetGlobalJsforExecute()
Then we fix using of this script also in AjaxResponse
- MOD: In whole render and handling proccess we will use like identificator of Widget ist class, not full class name
in all places where we need full class name we will construct it
so we did many fixes for this fact.
- ADD: maximize glyphs
- ADD: on getCfgParam we do discovery of default value, and do some sort of value type configuration, in case of number, we try to
return number, and in case of bool we try return true, it accept values for true: true, yes, si, on
3.3.24 24/05/2012
- FIX: FileLock.class.php will handle dir creation in case of missing dir (linux could not work due to permissions)
- ADD: admin level management in SApplication singleton, it means we know if curent user is admin or not, there are different situations, that we need
distinguish if user is application admin or just user, there will not be different stat handled on application level
just admin or not, so we add admin user rights mask in app.config.inc 'session.adminRights', is user is admin it will have admin flag on
it will be checkable from User.class.php by function 'isAdmin', and added 'isAdministration' in SApplication
There we can handle 2 different things: 1 - recognise that some user is application admin, and if there is appliction state administration set to true so there can
be rendered some controls with administrative functions
to set application in admin state there must be variable in request 'admin'='true'
- MOD: work on WidgetSkins and user intercation
3.3.23 23/05/2012
- ADD: widget resources in resources.config.inc
- MOD: FormService.class.php , chenges in input parameters recognition, it take cfgParams with defaults from post
- MOD: removed params in closePopup proxy actions pxml.edit.js, pxml.runtime.js
- MOD: parameters for job of doRequest was not complete pxml.ajax.js
- ADD: jQuery adds
- ADD: posibility to configure EditFormContent class in document.config.inc XdocumentHelper.class.php
- ADD: return states from customExecute function
const AES_CUSTOM_EXEC_RET_EXECUTED = 'executed';
const AES_CUSTOM_EXEC_RET_REDIRECTED = 'redirected';
const AES_CUSTOM_EXEC_RET_NOTHING = 'nothing';
- ADD: configuration editing dialog and all necesary support classes
3.3.22 22/05/2012
- FIX: in all Widgets guid => instanceId
- ADD: jquery 1.7.2 with UI plugins (Interactions)
3.3.21 21/05/2012
- FIX: CollectionValuesGrid.class.php modified construct method
- FIX: selection set from custom desktop is not having size and neither ID
so we have to handle it for future navigation, there were 2 fixes done in classes
XwDatabase.class.php
XwSelection.class.php
3.3.20 18/05/2012
- MOD: XmlAutoEditService.class.php created function getDocumentHelper so it can be overriden
- Moved all what was widget insisde widget/lib
all classes necesary for Config editing
- ADD: new serializables 'WidgetConfigDocumentModel' => 'db.widget.WidgetConfigDocumentModel', 'ConfigXml' => 'core.config.ConfigXml',
- FIX: ConfigXml had problems creating from Xml
- FIX: Xml addXmlLikeChild problems with empty inserts
- MOD: Pxml.FormActionsListener in pxm.edit.js mage like singleton new style
- MOD: XwDocumentHelper modified initial comment
- MOD: XmlAutoEditService
- params in ctor
- execute added with customExecute
- added getDocumentHelper function
- MOD: added new include path in pxml.php
constant('__PROJECT_PATH__').'/lib/widget/lib',
constant('__PROJECT_PATH__').'/lib/widget'
3.3.19 17/05/2012
- ADD: WidgetComponent mechanics. Widgets are SkinableContainers with different programable runtime configuration. There are 4 different levels of configurability.
1° ComponentConfig - component config (not runtime editable)
2° WidgetConfig - override with widget class config (runtime editable) /classes/.config.xml
3° InstanceConfig - override with widget instance config, instance mean Widget will obtain Global instance ID
and this will be used for config identification (runtime editable) /classes//.config.xml
4° UserConfig - its instance config override for specific user (runtime editable) /users//classes//.config.xml
For support this we add new config files manager. SConfigStore.class.php this class manage configuration storage.
All future widgets have to extend ui.widget.WidgetBase. One widget is mostly auto sufficient component. It have to be placed in /lib/widget base dir.
All widgets have to have root dir with lowercased class name f.e. TestWidget will be placed into testwidget directory. Directory structure for one widget:
../lib/widget/
|-
|- .class.php - main widget class file
|- .config.xml - ComponentConfig for widget
|- src - any other widget private classes
| |- .class.php
| |- ....
|- rs - widget private resources (namespace will be lowecase widget name)
|- model - non obligatory editing schemas and templates for different level of configuration
| |- w_schema.xml
| |- w_template.xml
| |- i_schema.xml
| |- i_template.xml
| |- u_schema.xml
| |- u_template.xml
|
|- tmpl - PXML templates used privately in widget
|- .pxml
|- ....
Each widget have to declare with annotation level of configuration available.
0 - Just Component level this widget have not alot more then usual skinable component
1 - Widget level configuration, this is valid for all widgets of the same type in the application
2 - Instance level configuration. There is possibility to mark Instances of widget with guid (some string) depends on developer
and this config is walit for widget and particular insatance guid
3 - User insatnce config. We can mantain specific config for each user and each instance separately.
There is cascading of configs: 0 <- 1 <- 2 <- 3 means that what is in bigger one it will wins over smaler one.
There is work still in progress, but til now we change/add following files in core:
- SLoader.class.php added include dir 'lib/widget'
- SResManager.class.php new method for runtime namespac adding
- ConfigArrays.class.php some minor modifications
- Configurable.class.php adapt also for ConfigXml type
- ConfigXml.class.php new configuration type (its ConfigArrays compatible, ConfigArrays can be merged into ConfigXml, but not vs.)
- IConfig.interface.php
- SConfigFactory.class.php some adopts for new Xml config type
- SCofigStorage.class.php new configs storage engine (simple files storage)
- User.class.php - added function for user hash
- WidgetBase.class.php root for all widgets
- Added new TestWidget for testing and development
- Added EmptyWidget.class.php for future copiing in development
3.3.18 16/05/2012
- Added ConfigXml.class.php
- modified IConfig.interface.php, added $namespace constructor parameter => it was added also into ConfigArrays.class.php
3.3.17 15/05/2012
- Added new libs lib-opt/docway and lib-opt/acl
- added include path in pxml.php
- added resources (docway) in resources.config.inc
3.3.16 15/05/2012
- MOD: modified machanics for Xml dumping from XmlModel, we were redump new Xml, but this is not robust solution, spetialy
if we ar enot 100% sure about of completnes of our Xml schema. There were new proposal, to Dump model directly into
existing DOM document. We modified following files:
IXmlBindable.interface.php - added dumpIntoDom function
XmlField, XmlObject, XmlObjectCollection classes, we add new dumping function
XmlModel, XwDocumentModel classes for to call new dumping
Xml.class.php we add return parameter to addXmlLikeChild function
3.3.15 11/05/2012
- FIX: removed thumbnail label trim from code of AttachPrettyPhotoThumbnail.class.php and moved this fack to the template of documents preview component (
we format label in place of visualisation instead of source)
- FIX: XwIndexLookupSource.class.php in vlues can be present '&null;' so it is translated for label like _L('index_empty_value#xw')
- FIX: FilterField.class.php index type case of first letter of index name decided basing also on index type
- ADD: some labels
- MOD: xwdoc-lib.xsl templade for xwdoc.CreaIntestazioneDocumento modified return of '' in case of simple varie document
- FIX: AttachPrettyPhotoThumbnail.class.php there were problem if fName contains & so now is fixed
- FIX: AclOfficeQuery and AclPersonQuery classes, they trim white chars from generated query strings.
3.3.14 10/05/2012
- FIX: We add sortable content, and we was using type of ajax content on client side to decide what to do in case of ordering,
if we were in titles it was forcing order directly on titles, and when we were on search form it was just setting future order
but there is other situtation, when we have smal search forms (without order) on the same window with titles which need sorting
we have to create new type of ajax content, and this content must be send in case of orderable search form, so we can distinguish
correct situation, then we will change decision on javascript side: we will test if there is no 'search-sortable' we will do titles sorting kind
so we will not test if there is titles do titles sort, we wil do it every time while there is no 'search-sortale', and it is
only in specific situation, if seguent content is derived from: ui.component.SortableSearchFormContent
- modified SearchFormService.class.php , it will generate label for ajaxContentLoaded even. 'search' or 'search-sortable'
- xw.runtime.js reorderTitles function will handle ordering type decision basing on Pxml.xw.currentContent in revers logic,
it will consider titles ordering everithing except 'search-sortable', so it will handle all posible cases except real sortable search form
- FIX: above method is not enough :( we have create new event on TitlesService and also on SearchFormService so we can separate completaly sorting,
so we generate new JS event 'sortingContextChanged' so we can handle sorting differency, and we add in Pxml.xw new variable. 'currentSortingContext'
so we can handle specific sorting context changes,
added new event handler onSortingContextChangedEvent in xw.runtime.js, in which we set client sorting context
reorderTitles function now is using Pxml.xw.currentSortingContext to decide what to do.
services affected:
TitlesService.class.php
DocWayTitlesService.class.php
SearchFormService.class.php
fixed problem with searchForm state _state['orderByDir'], if it was set to '' it was not rendered and so all code after (spetialy client side) was not function
cause there were no field present, so we add possibility to set form sate to '##EMPTY##' in this case hiddent field will be rendered, but hidden it's self
check presence of value == '##EMPTY##' and it will render '' instead. For panic security we added also handling of value '##EMPTY##' in orderByHelper
3.3.13 09/05/2012
- MOD: AttachPrettyPhotoThumbnail added new param 'readOnly' can be used for seting readOnly actions on attach
- MOD: field 'oggetto' set like editable in schema_doc.xml#xwdoc & schema_fascicolo.xml#xwdoc
- MOD: xwdoc.CreaIntestazioneDocumento there will accept also already formated date
3.3.12 08/05/2012
- FIX: hidden fields form rendering and also labels rendering
SFormFieldFactory.class.php - fixed field param sending into SimpleLabel
SimpleLabel - fixed for hiddens fields render (it prints word 'hidden' in case we are i debug and hiddens are rendered)
forms.pxml - fixed template for SimpleLabel
XmlModel.class.php fixed field generation Field will be marked like readOnly also in case of hidden
- ADD: possibility to skip final IAjaxResponse descendants render setting configuration parameter ($options via ctor) 'skipFinalOutputRendering' to 'true'
- MOD: Pxml.PopupMan in pxml.js for Esc popup closing
3.3.11 07/05/2012
- FIX: there is problem with custom descktop selections, and also any kind of selection which was not inserted in selection tree by WS, we are depending on selections
in selection tree, at least we are require one currrent for to know its selection id. But while we do setCurrentSet using SelID frem Custom desktop,
it will not produce any current selection set on SelectionTree and this implies future errors when we ask DB to return last current set selection ID,
in case we set it from Custom desktop. So we will introduce FAKE selection ID field in XwSelection.class.php, this one will be used by external actors.
So it will have everytime some current set also in case that there is no one current in selection tree.
- FIX: corrected set of lastDocument in XwDocWayDatabase.class.php
- ADD: post it management
Model:
schema_postit.xml
template_postit.xml
XwDocPostItModel.class.php -> base class for any PostItmode.class.php (need to be added to serializables)
XmlObjectpostIt.class.php -> DataObject for PostIt adding (need to be added to serializables)
Form:
PostItEditor.class.php (modified edit.pxml for template)
lang default.properties for postit_title string
Js:
XwDoc.PostIt with addPostIt(idIUnit) function
3.3.10 04/05/2012
- ADD: 'removeCC' action in DocWayDocumentViewService, also in xwdoc.runtime.js
- minor changes on XwDocWayDatabase, grantRight and denyRight receive modified doc so it will be set like lastDocument
- MOD: function workOnRpaCc was moved form application.runtime.js into xwdoc.runtime.js in class XwDoc.RpaCc
- MOD: autocomplete value handling, there is distinction betveen value and label, autocomplete show label but it will set value in field
in case label is different from value!!! fixed this in AutoCompleteValue.class.php and also in pxmlscu.js (we overload original updateElement handler)
- ADD: added function assignFolderRPA in XwDocWayDatabase this is for assigning RPA to folder this will be decided in XwDocRpaCcModel in method save
it will intercept nature of current document and it will call right one method
- FIX: XwDocumentModel.class.php setCurrentXmlObject was not returning anything. Now it return correctly set current object
- ADD: AutoCompleteBehavior.class.php added querystring generation from parameters
- render of FormSkinnableFieldPartBase.class.php changed for use new function of AutoCompleteBehavior
3.3.9 03/05/2012
- FIX: pxml.ajax.js - customParams were lost during "pushing + handling" of JavaScript jobs (they were simply not passed over as parameters in function calls).
Fixed just adding the proper param inside doFormRequest and handleJobs functions.
3.3.8 02/05/2012
- FIX: custom updates parameters sending form in Lookup system, so modified event handler onLookupValueSelectedEvent in pxm.edit.js
now it take data['lkp_customs']['update'] instead of data['lkp_customs'][0]
- MOD: added new function in 3diwsPXML "loadFirst(String query, boolean docwayLike)" this function execute query and return first document
it will not alterate selections tree and nothing else in current connection on ws side, so its good to load arbitrary document via query
and out of any set!!, old XwDatabase function loadFirst was moved to this end point function
- old method of XwDatabase loadFirst becom loadFirstWithSelection
- changed XwPerson.class.php old loadFirst call was changed to loadFirstWithSelection call
- ADD: AclPersonQueryLookupSource for person lookups (added also AclPersonQuery), it handle also office to person bind in list view, it have cache for office_code to office name translation
so it will not produce queries for each person of the same office. This source will produce 'update' lookup customs rule, so it will try to set values into
office, office_code, and person_code fields
- ADD: AclOfficeQueryLookupSource, AclOfficeQuery
3.3.7 27/04/2012
- FIX: str2bool in DataFmt.class.php was amlied to capture also 'on' or 'yes' like true
- MOD: working on model in XW, we add possibility to attach custom form rendering, and custom model generating
so we can handle more editing situations
1: added possibility to specify modelClass for XmlObject in schema, so im free to decide who will handle my sub model. We add
ne attribute in schema '..
2: added new XmlObjectRpaCc.class.php and XwDocRpaCcModel.class.php for RPA and CC handling into xwdoc
All components present in RpaCc handling
a: schema_rpa.xml (template_rpa.xml) added in xwdoc, schema is custom recognised by XmlObjectRpaCc.class.php
b: XwDocRpaCcModel.class.php this model is base for final application model, we need overload cause we need
use specific application helper, This model will be called to edit custom RpaCc form on custom model with custo model object
c: then there are UI components:
i) ui.component.edit.RpaCcEditor - this one render edit form part for rpa anc cc handling
ii) ui.component.edit.RpaCcPersonContent - this one render one person edit boxes (this is called by LoadClass service)
3: for beter ajax handling we add in ajax target possible taconite command, cause taconite can do many other things not just replceChildren
so new optional ajax target sintax is:
a: target old style used for replace children
b: target$command
command := {'append-as-children','append-as-first-child','delete','insert-after','insert-before','replace','replace-children','set-attributes'}
c: there can be aditional calling parameter fTaconiteCommand := {'append-as-children','append-as-first-child','delete','insert-after','insert-before','replace','replace-children','set-attributes'}
- FIX: removed json2 implementation from pxml.js (was bugged) we will use prototypes one
3.3.6 24/04/2012
- MOD: some relevant modifications to XmlAutoedit system
1: SFormFieldFactory getInstance added new parameter $canCreateNewInstance with default true. If false factory must exists already in time of getInstance Call
so we can garantie some specific settings inside Factory and we can use it in other places which need those particular settings
2: created SXmlFormFieldFactory which extends SFormFieldFactory, it add methods for creating complex form content starting from
some XmlField
3: SFormField factory is working on some data object in one time, but when we are using complex xml data model we need possibility to
swith factory to work on some particular dataobject and then it have co come back to precedent , so we add mechanismus of dataobjects stack
and methods pushDataObject and popDataObejct. Push will set new data object and curent will be set to stack,
pop will take current away and it will recover one from stack
4: Added 'renderer' field and attribute in XmlObject (done form IXmlField in up), it hold class for Xml object edit form part rendering
5: function drawField of SFormFieldFactory can be called on fields of XmlObject which can have its self like form field
so we have to test if wanted id its not it self, so getFieldById will not give error, so we modified getFieldById of XmlField so it test for is it self first
6: minor bug fixes in editing mechanics
7: Added posibility to identify data field in model by 'name path', this was done in SXmlFormFieldFactory in function drawField, it look first for field by ID then
by name path if was not found by ID
3.3.5 23/04/2012
- FIX: Img.class.php resize was not correct in any case
3.3.4 20/04/2012
- MOD: TitlesService.class.php 'desktop' command handled like sel not like search!!
- ADD: added db connection config param 'folderTreeDocwayRights', if true all folder tree queries limited for access rights like in ordinary Docway connection
- MOD: removed useless override of setCurrentSet from XwDocWayDatabase
- MOD: titles service on fCmd = 'sel' can have exception on first title page if SID was used from external connection, so it will retry one time
executing new query [?sel]=....
3.3.3 19/04/2012
- FIX: SearchFormService.class.php redirect param
- MOD: XmlDocumentEditActionBase.class.php added new hook ED_ACT_JUST_AFTER_DELETE_DOC
- FIX: LeftMenuPanelService.class.php port to new redirect system
- MOD: added fTarget param in redirect call in DocumentViewService and TitlesService
3.3.2 18/04/2012
- ADD: SelectionTreeLeftMenuPanelService.class.php like new standardized xw.service for Selection tree handling
- FIX: SortablesSearchFormContent template was missing hidden field for 'fOrderByDir' value
- FIX: fixed missing return statement in function getCrumbText of DocumentViewService of xw
- FIX: MultiDbManagerService fixed command recognition after crum hit
3.3.1 17/04/2012
- MOD: unify services calling interface: __construct(IData data, array options); there should be present options['caller'] reference in case of
service redirect, we will use "called must to understund" pattern, what means that called service must try to decode arrived parameters, if it
is not able to recognise calling atributes good for him it will finish in error. This pattern will permit to extend services, use configurable
followups without changes in stable existing servivces.
Added possibility to configure logical services names, there is static method identifyServiceClassname($source) in AjaxServiceGate which can translate
logical names (names without '.' in) into full classified class names, it is good practice use logical names of services instead of full classified names
Changed services:
- PopupService.class.php
descendant:
- ErrorDialogService.class.php adapted to follow it's parent interface, anyway this class have personalized constructor, cause its not
possible to use it in services chaining
- LoadClass.class.php this service was refactored, it can receive this params in options:
'caller' - optional caller
'target' - optional target client div, it will look for fTarget in (P/G)
'classDescriptor' - optional class descriptor, it will look for
fClassId { descr := [§]; params := [|[..|[]]] } in (P/G)
fClassDescriptor {JSON form of real classDescriptor} in (P/G)
- LoginService.class.php removed ctor params, this service do not need params, so anything send in will be ignored
- FormService.class.php adjusted ctor parameters
descendant:
- SearchFormService.class.php adapted constructor parameters and also history record generation, then we refactor all followUp calls
to generate right parameters for followup mechanics
- XmlAutoEditService.class.php adapted parent constructor call
- AsyncProgressService.class.php adapted constructor parameters , changed follow up mechanics, it is now possible to configure class which will follow
after async procces finish
- LeftMenuPanelService.class.php adapted constructor parameters
- PrintService.class.php adapted constructor parameters
- TitlesService.class.php full refactor of parameters recognition now it follow this schema:
caller != null
a. history
fCmd = 'sel' in options
fData = SID in options
fSelectionID ignored!!!!
b. searchform or advanced search form
fCmd = 'search' | 'searchAsync' in options
fData hold query or filter object and is set in options
fSelectionID can be set for refinement in P/G
c. documentview
fCmd = 'search' | 'searchAsync' in options
fData hold query or filter object and is set in options
fSelectionID ignored!!!
caller == null
a. desktop
fCmd = 'desktop' will be override to 'sel'
fData = SID
fSelectionID ignored!!!!
b. dirrect external call
fCmd = 'search' | 'searchAsync' in P/G
fData hold query is set in P/G
fSelectionID can be set for refinement in P/G
c. page
fCmd = 'pag'
fData = {first, prev, next, last}
d. oreder
fCmd = 'order'
rest is ignored
For this schema we changed several calling places:
- xwdoc.runtime.js function setDesktop will set fData instead fSelectionID,
- xw.runtime.js function showSelectionTitles set fData instead fSelectionID,
- DocumentViewService.class.php refactor of parameters and calling system
- FolderTreeService.class.php refactor of parameters and calling system
- MultiDbManagerService.class.php refactor calling parameters and also parameters recognition
Pxml.xw.MultiDbSupport.loadTitles in xw.runtime.js was modified fSelectionID => fData to be conform with new
services calling system (in TitlesService param fSelectionID is used for refinement)
Other changes:
- XwFilterHelper.class.php, modified exceuteFollowUp, it is trying to translate class name first (AjaxServiceGate::identifyServiceClassname($source)).
- total refactor fOldQuery => fRefineQuery in all files
- XwDocumentHelper.class.php, modified exceuteFollowUp, it is trying to translate class name first (AjaxServiceGate::identifyServiceClassname($source)).
- MOD: removed useless UIContainer constructor method
- ADD: json2.js compressed code to pxml.js core javascript
- FIX: all implementors of method function getCfgParam($paramName, $defaultVal = '', $namespace = ''){... were fixed to
function getCfgParam($paramName, $defaultVal = null, $namespace = ''){... cause calling this method with default null it casue return emty string and not null!!!
there were some of files implementing IConfigurable.interface.php
- ADD: new UIComponent for search form visualisation and handling, it is envelop for search form fields
- SortableSearchFormContent - this is search form fileds container with possible sorting commander on the top of the form
this content can be set in filter.config.inc like 'class' option for some search form
example: 'class' => array('ui.component.XwDocSortableSearchFormContent', array(null, array('fContentClass'=>'ui.component.AdSearchFormContent'))),
it must be defined with full correct classdescriptor, there must be present option: 'fContentClass' which point to fields content component
Options:
fContentClass - full classified class name to fields content
fSortingOff - true sort will be turned off , false (dafault) sorting is present
- MOD: refactor XwDocSearchFormContent => XwDocSearchFormFields, cause we have new SearchFormContent composition
Migration guide:
1: adapt SearchFormContents
a: extend from UIContainer
b: Modify template removing all parts already defined in SortableSearchFormContent template(it is envelop for search form contents)
c: Modify filter.config.inc class for FormContent in manner that it call SortableSearchFormContent using your new fileds content
example: 'class' => array('ui.component.XwDocSortableSearchFormContent', array(null, array('fContentClass'=>'ui.component.AdSearchFormContent')))
there is param 'fSortingOff'=>true|false, you can use it to turn off sorting on Search form
2: adapt all extended services with new service calling system
3: if you'r using searchAsync (calling titles) you have to add followUp class in async.config.inc
'async.followingTitlesServiceClass' => 'TitlesService'
4: change all followup references in document.config.inc in manner that it use logical names of following services (it can remain full
classified name too, but logical name will follow services mapping from app.copnfig.inc)
3.1.3 13/04/2012
- FIX: onLookupResetFilterEvent function in pxml.edit.js
- FIX: removeAttachment in XwDocument.class.php
- ADD: add function loadSottoFascicoloByNumFasc in xwdoc.runtime.js
- ADD: add funtion loadTreeNodeQuery in folderTree.runtime.js and FolderTreeService.class.php
3.1.2 05/04/2012
- FIX: there is case that we have also $app->getInputVar('fSelectionID', ''); and $fSelectionID set
it happen when we call titles from breadcrumbles file TitlesService.class.php
3.1.1 05/04/2012
- removed /conf-example from core project, it will be added in skeleton project 3di.pxml3.new_pxml_xw_project
- FIX: LogoutForm template of commons had hardcoded image location( refactored )
- FIX: unified use of xsl libraries, commons-lib.xsl, xwdoc-lib.xsl, and xw-lib.xsl , there is new naming practice
all templates from commons will have name commons. , all templates from xw will have name xw.
all templates from xwdoc will have name xwdoc.
NOTE: xwdoc-lib.xsl need commons-lib.xsl, we dont have recursive include resolving, so we have to include both in case we need use xwdoc-lib.xsl
- TODO: missing mime icons, txt, csv,....
3.1.0 04/04/2012
- complete directories refactor
there is new core project structure
/conf-example - examples of conf-common dir (NOT commitable, it can be just copied!!!!)
/lib - contain main obligatory libs: commons (old lib), skin (new lib extracted from commons)
/lib/commons/lib - code of library
/lib/commons/rs - resources of commons library
/lib/skin/lib - code of library
/lib/skin/rs - resources of skin library
/lib-opt - optional libraries
/lib-opt/xw - xw specific classes and resources (this must be checked in /lib directory)
/lib-opt/xw/lib - code of library
/lib-opt/xw/rs - resources of library
/lib-opt/xwdoc - xwdoc specific classes and resources (this must be checked in /lib directory)
/lib-opt/xwdoc/lib - code of library
/lib-opt/xwdoc/rs - resources of library
following new directory structure also application project directories must change in following form:
/conf-common - main config files
/conf-xxxxx - developper/install specific config
/app-lib - code of application logic
/rs - application specific resources (old app resources were in /rs/{app}/...)
/tmp - temporary (optional and configurable)
/lib - pxml3 imported structure
/lib/commons...
/lib/skin ...
/lib/xw ...
/lib/xwdoc ...
core is checked into existing project from new project '3di.pxml3.core'
- MOD: we changed all path system, SLoader.class.php, pxml.php were modified to accept new directory structure
- MOD: we change resources loading strategy, There is no more RS root path, cause each resource namespace will have its own base path
so we refactor resources configuration
old resource namespace def:
'someNamespace' => array(
'someType_1' => array(
'path' => 'somePath_1'
),
...
'someType_N'=> array(
'path' => 'somePath_N'
)
)
will become new namespace definition
'someNamespace' => array(
'nsPath' => '',
'nsTypes' => array(
'someType_1' => 'somePath_1',
...
'someType_N'=> 'somePath_N'
)
)
)
- MIGRATION GUIDE: 2.x -> 3.x
1: checkout app from cvs
2: disconnect it from cvs
3: rename project from 3di.pxml.xxxx => 3di.pxml3.xxxx
4: share it in cvs
5: checkout into existing project from 3di.pxml3.core folder lib, and eventually after that take also lib-opt/xw, or lib-opt/xwdoc
6: refactor rs.config.inc
7: remove path mappings lines relative to pxml, there must remain just paths relative to application
2.3.1 28/03/2012
- MOD: AttachPrettyPhotoThumbnail, removed 5th parameter it is decided automatically
- MOD: attachment system, it is still not finalised, its just many modifications due to demo!!!
-adFileUploadGate.php, attach.pxml, AttachPrettyPhotoThumbnail.class.php
- ADD: in rs/xw/css/img/mime some icons for attachments in galery view
- FIX: translation of index names for lookups, it is possible to translate all index names
- FIX: navigato9r labels for i18
2.3.0 20/03/2012
- ADD: element "] />
:= {
rs_file_xp_match | // resources xml file //defines/tag[@xp='']
rs_file_type_match_on_xp | // resources xml file //defines/tag[@xp='' and @includeType='].value>']
rs_file // resources xml file //defines/tag with xp="//replace_content"
}
:= [[rs. namespace]#default rs. namespace$].xml
Note: if namespace is not define it will look for model resource in current namespace, there can be specified namespace and also defautl namespace
f.e. test.xml => current ns. ; #commons$tets.xml => first in current if not found it will look for it in commons namespace ;
xwdoc#commons$test.xml => first in xwdoc then in commons, current will not be considered, this means its not overloadable!
:= name of element which will be included
:= xPath of included element
:= xPath to some node in edited document (original xml, non modified model!), this node will contain string which will determine
include content
Example:
this will look for file: schema_extra_deposito.xml in current namespace, then it will look for include node:
1: $Type = origDocument.xQueryNode('//fascicolo/extra/@type');
2: $IncludeNode = schema_extra_deposito.xQueryNode("//defines/tag[@xp='//fascicolo/extra/deposito' and @includeType='$Type']");
- FIX: code hints for SResManager
- MOD: pxml resource names are added into config automatically, so it's not recomanded to add them manually in rs.config.inc
- FIX: All resource operations which call resource name can express namespace also inside resource name like this $
- ADD: XwDocumentModel.class.php, added new method overloadable justBeforeNewCreatedSchemaBind(), it is called from create method, when template
is applyed, and we can do arbitrary modification on _doc before schema will be applyed
- MOD: light refactor of XwResponse, added function for udType recognition
- MOD: created
rs/commons/xsl/commons-lib.xsl library for commons xsl functions
rs/xw/xsl/xw-lib.xsl library for xw xsl functions
rs/xwdoc/xsl/xwdoc-lib.xsl library for xwdoc xcommon xsl functions
they can be simply used like this in xsls:
pxml will resolve paths befor any xsl transformation, it will replace includes with correct paths.
- FIX: LoginForm.class.php(tmpl) set focus on login field on document ready
- ADD: added proccessing instructions support in model system
- added const FT_PI = 'processing-instruction'; in XmlFieldType.class.php
- added XmlObjectProccessingInstruction class
- modified rest of model system, so it accept proccesing instruction schema tag deffinition
- ADD: in history we can set config 'repeatEqual' => {true|false}, if false it will not create cycles in history
- modified history classes
- FIX: In History.class.php function reindex was not returning correct lastID and so also currentId was not set after trim
2.1.6 03/04/2012
-ADD: FolderTreeService.class.php in xwdoc library (service for FolderTree handling)
-> RS/xwdoc/img/css/folderTree.css, RS/xwdoc/js/folderTree.js, RS/xwdoc/xsl/FolderTreeNode.xsl,
RS/xwdoc/img/folderTree/* images
-> modify of XwDocWayDatabase.class.php , we added 2 new function for FolderTreeSupport (connected to new Version of 3diwsPXML)
- getFolderTreeRoot(folderCode), getFolderChildren(folderCode)
- REM: removed redundant DocumentViewContent.class.php from xwdoc
- MOD: renamed template file titles.pxml to titlesAndDoc.pxml under xwdoc
- ADD: new XwDocDocumentViewContent.class.php where we use params trough array of options, and we added there folderTree Block
- MOD: AjaxContentHolder added param $showActivity, if true it will show activiti animation till is not revrited
- FIX: generic.xsl had some problem with RicodificaFascicolo template, it was not considering more leveles of folder
-> MOD: fascicoloDoc.xsl
2.1.5 30/03/2012
- Some simple keystroke errors
- FIX: $options parameter lost in ClosableTitledPanelSkin ctor.
2.1.4 21/03/2012
- FIX: XwDocument.class.php was loading in some cases documents without lock
2.1.3 19/03/2012
- Interval field on search form: changed look '()' -> '-'
- FIX: some css diversions between browsers resolvet on commons forms_XX.cssù
- ADD: XwQueryLookupSource,
this class need new params in lookup handler inside lookup.config.inc
//DB query
'query' => array('db.xw.AclPersonQuery', array()), //[xml,/fascicolo/@stato]="deposito"', //can be IQuery implementor class descriptor or string
//title rule which must produce: |##|
'titleRule' => 'XML,/fascicolo/extra/deposito/collocaz_palchetto "^|##|" XML,/fascicolo/extra/deposito/collocaz_palchetto',
//order by
'orderBy' => ''
there are added LookupPopupNoSetPosition and LookupPopupNoSetPositionNavigator which are used in case there is query lookup
in this case filter or set position have no sense, specialy with dynamic queries depending on harvest rule.
LookupPopupNoSetPosition this lookup also have new functionality: it set value directly without popup show in case there is unique value found.
(for this we have to modify pxml.edit.js, we add new lkp_appMode which is 'replace' so value will be replaced also in search)
2.1.2 15/03/2012
- ADD: added posibility setup order of editing element value vs it children/attributes, in schema it is new attribute: editOrder="{first(default)|last}"
- ADD: db.data.validator.CurrencyValidator
- ADD: IObjectValidator interface for posibility to distinguish between validators which react on fields and which react on objects, then there is a
FIX for XmlObject validation in case there is XmlObject (TAG) with validated value, and validator is for field not for object
- FIX: for new skin params list in HxTagsTranslator.class.php, parameters have to be now like this ->
- Introduced concept of Instance scoped /Request scoped config, all UIComponent descendants are have Instance scoped config, so there can function of instance
config oveload, but rest of the Pxml will remain in old Request scoped config. For to have Instance scoped config there is new method in SConfigFactory::getInstanceScopedConfig
- FIX: Zend memory cache deserialisation problem, added one level more serialisation in PersistorZendMemory.class.php
2.1.1 14/03/2012
- FIX: of hanging of Ajax indicator, there is bugged request counter in prototype.js
so we have to count ajax requests on our self (pxml.ajax.js)
2.1.0 13/03/2012
- possible config conflicts (conf-commons)
forms.config.inc
popup.config.inc
xw/CustomOrderByPopup.config.inc
xw/filter.config.inc
xw/lookup.config.inc
xw/attachmentManager.config.inc (add)
2.0.1 13/03/2012
- JsProxyAction parameters refactor (domId, domClass) must be send in array()
- Fix skins creation in SJsProxyActionFactory
- Fix label action creatin in SFormFieldFactory
- Refactor of Skin creation at all.
- In case of parameter 'cssClassNamePfx' there were default value name of the class but
only in case of null value send, an case of empty string it were no default considered.
we have to not consider empty string like undefined value, cause in some cases it can be wanted to have empty value configured.
So we have to handle this specific fact manually, checking empty on $this->cssClassNamePfx, and if its empty force skin variant name derived from class name
- MissingCurrentDbError inherit from Warning, (was Error before)
2.0.0.0 10/02/2012
- refactor of UI components tree for better constructor parameters handling
UIComponents are all Configurable so we will merge eventual constructor parameters
into UIComponent config. There are changes in all of those classes
- SConfigFactory.class.php, removed cache of created configs (is useles cause imported configs are already cached in GLOBALS), and it can be used
in new system, cause each class need own copy of config.
- Configurable.class.php
a: removed default namespace, useless performance overhead!!
b: there is posibility to send override in to config
- ConfigArrays.class.php strlen ==> empty 50%- 80% faster
a: removed dumpToJsImplicitObject which used DataFmt for dump, instead we create function in DataFmt which accept ICOnfig like param
then we refactor all place where were used (HtmlHead template)
- UIComponent.class.php modified ctor params list
- UIContainer.class.php modified ctor params list
- UISkin.class.php modified ctor parameters handling
- UISkinnableContainer.class.php modified and optimised ctor
- UIActionSkin.class.php modified ctor
- HtmlHead.class.php removed ctor params, they are useless
- HtmlDocument.class.php removed ctor params, they are useless
- FormBase.class.php modified ctor params
- ScuOnClient.class.php - REMOVED
- SortablesLayout.class.php changed default value in ctor param '' => null
SKINS
- ToolBarSkin.class.php removed custom constructor
- TitleSkin.class.php removed custom constructor
- SimpleButonSkin.class.php custom ctor removed
- GlyphButtonSkin.class.php custom ctor removed
- TitledPanelSkin.class.php custom ctor rewriten
- CLosableContainerSkin.class.php custom ctor rewriten
- PopupPanelSkin.class.php custom ctor rewritten
- CLosableTitledPanelSkin.class.php custom ctor rewritten
- DataFmt patched dumpArryToJsImplicitObject due to new function is_assoc_array added in SLoader
- SLoader modified getClassInstance, cause there will different situation in case we create UISkin subclass, which have
one parameter like associative array
- changed configs:
popup.config.inc,
forms.config.inc,
xw/CustomOrderByPopup.config.inc,
xw/lookup.config.inc,
xw/filter.config.inc
- modified those classes for skin class descriptor
Calendar.popup.php
SPopupHelper.class.php
LookupPopup.class.php
GENERAL FIXES
- renamed getDialogSkinClass to getDialogSkinInstance
- removed function getDialogSkinInstanceNoCloseActionCheck from SPopupHelper.class.php
1.9.2 12/03/2012
- FIX: laco pxml.edit.js in Pxml.Edit.connectSlaveFields was seting wrong pxml:lookup event handler to edits (was createHandler and need to be changeHandler)
1.9.1 08/03/2012
- added method newSubFolder in file XwDocWayDatabase.class.php
1.9.0 08/03/2012
- changed version numbering system
major.minor.patch and there is a rule for minor number which while is odd it means candidate version, and while it is
even it means official release.
- chaged Version.class.php
- FIX, in User.class.php was missing papping from Profile source rights to application mapped rights. Modified in function mergeProfile
- all project references to default.php renamed to index.php
- modified XwPerson.class.php multiple login handling, now when person is loaded there is instantly also checked for multiple login, if there is multiple login, it will generate
multiple login choice in warning.
- modified error handling in pxmlpagesGate.php and login.php, both call error.php now.
- modified Footer version visualisation, so now it have mouse hint with full version of Application and Core
- FIX: in Calendar.class.php for edit search distinction in popup values handling
1.8.0.12 07/03/2012
- FIX XmlModel.class.php , xml schema for edit field attributes interpretation, in case of edtitable='HIDDEN' it was
marked like not editable. Now it is editable, and field is corectly binded to model during bind
- version management removed getVersion from SApplication
- added class core.Version.class.php for version checking, and management
- modified Footer.class.php for new Version class
- form of config code (config.php):
/*
* Core version range specify which core version is requested for this application
* It is expressed like interval - where := D.D.D.D
*/
define('__CORE_VERSION_RANGE__', '1.8.0.10-1.8.0.12');
- created pxmlPagesGate.php which is main pages gateway, so we centralise main application index.php handling
cause index.php in 99% of case will just include lib/pxmlPagesGate.php, so we can unify and grant core version
check.
- there were around spelling error execFolowUp, and was corrected inexecFollowUp
- ATENTION: code of application code inside inxed.php must be changed into:
there is temporal control inside SPagesManager to achieve this change!!!
- removed set of curent set form pxmlPagesGate.php (there all handling in SApplication)
1.8.0.11 02/03/2012
- Modify Xml.class.php: added method renameNodes
1.8.0.10 01/03/2012
- FIX for lookup value fixed string quoting in edit modality
BaseLookupSource.class.php added method getLookupDescriptor(), idem in ILookupSource.interface.php;
LookupPopupValueList fixed string quoting
- FIX for lookup multiple value selecting in search modality, which was not distinguished in edit mode
LookupPopupValue.class.php added new ctor parameter, which is propaged to JavaScript action handler
pxml.edit.js modified value concatenation: in search remain like it was, in edit it will replace old value
- modify XwIndexLookupSource.class.php for configurable DbId, so we can use external DB for lookups, like lookup into ACL
- fixed comment MissingCurrentDbError.class.php
1.8.0.9 29/02/2012
- added new User profile source type in SUserProfileSourceFactory.class.php
const UPST_LCPS = "UserProfileSourceLCPS"; => implementation user profile source of LCPS (egaf specific)
- modified coments SUserProfileSourceFactory.class.php
1.8.0.9 22/02/2012
- modify FormsFieldLayoutBase.class.php, FormNoteFieldLayoutBase.class.php, SearchFormFieldLayoutBase.class.php, fix method name in getFieldId
1.8.0.8 21/02/2012
- added optional log rotation (FileLog/SLogFactory/log.config.inc).
- FIX: on DataFmt.class.php unset array in dumpArryToJsImplicitObject() treated as in
dumpArryToJsImplicitArray().
- FIX: on SearchFormActions.class.php formType is a required parameter in order to handle
more than one search form al the same time.
1.8.0.7 07/02/2012
- FIX in XwColumnsHelper cause columndef['type'] could not be set
1.8.0.6 06/02/2012
- FIX: XwDocument used removed loadFirstDocument which was replaced by navigateDocument
- added version system to core separatet from application
final app versione will be done like this: CORE_VERSION.APP_VERSION = C.C.A.A
also version log info will be coposed by changelog of app + change log of core
- added changes-log.php in lib
- added getVersion($format) in SApplication class
1.8.0.3 31/01/2012
- FIX titles service to history generation in case of async call finished instantly
- added allowedRepeatTypesMask in history handling, so we can have repeated some step types and some not
- added jQuery UI position plugin module
- implemented anchors
- FIX: AttachmentService.class.php for possible fName without extension
in that case extension will be taken from fId, if not present there too, it will
just add generic extension '.file'
- fixed pxml.js
class Pxml.EventProxy bind first handler object to handler function so this will reference correct object
inside event handlers
- fixed PxmlSwitcher class for event throwing before and after state change, so there is possible,
handle it from outside page, removed callBack function, there are events now!! => modified ClosableTitledPanelSkin
so it generate correct switche code.
- created sistem for exclusive left panels opening (only one is open in one time)
- reactivated resizer on righ side, cause we need automatic anchor scrolling
- added jQuery support (devel and release form), modified HtmlHead class for this fact
- added scrollTo jQuery plugin
- added prettyPhoto jQuery plugin for images galery handling => new resourcespath [pp] in commons namespace
- remove dposibility to use prototype under 1.7
- class for attachment configurable
- added image links to document
- added new param to Attach..... clones classes attachID for posibility to identify attachment
- zend memory persistor fixed storing for more tries in case of error, set for minimum 5 tryes
- added new lookup execution type 'uiExecType' => 'action',//[action|label|auto] label
it means that if lookup handler is set with this value it will be executed on form field label link
- modified SFormFieldFactory
- Modified JsProxyAction (added new domClass parameter used in case of simple link render, used in
label Action)
- added ActionLabel class like new possible form field part
- added new forms.parts.mapping type 'ActionLabelClass' in forms.config
- added new forms.skins.mapping type 'ActionLabelSkin' in forms.config
- worked on left side components, 2 different search forms, and connected to titles
- fixed User.class.php there were merging rights problem when rights mask is not defined
- updated sizzle in prototype.js
- modified Pxml.StateSwitcher
a: for posibility to have callback for each state
b: addClasses, remClasses
c: identify by id and selector
- Some minor fixes in skins
- added ClosableTitledPanelSkin
- created some new components in generic package like Group
and Element
- Div was changed so now it derive from generic Element
- fix for Element domId usage
1.8.0.2 18/01/2012
- fixed problem with multiple ACL logins modified User.class.php getParam called mergeProfile without remerge,
now it force remerge (reload from DB)
1.8.0.0 21/12/2011
- modified ACL Templates handling, added authMatch in User for arbitrary authorisation
handling.
- reamed old hx:AclLevel element in pxml into hx:aclViariant
- added authMatch attribute for 3 different kinds of authorisation matching (atleastone, all, none)
- Fix logoutForm ctor param can be null
- Pxml.StateSwitcher fixed posibility try to switch non existing element!!!
- Pxml.Ajax patch for avoid stop of requesting in case ther eis no target div
1.7.0.0 20/12/2011
- fix in index.php, there was set of currentSet, which override application current set handling
- added db.data.fmt.TstampFormatter in lib
- changed columns for print
- created 2 transfer prints (clear and one with BUSTA)
- changed whole graphics made 3 different graphics motives, to distinguish differ modes of use
- Fixed formatters in search for multiple values and \" combination
- modified hardly titles and order configuration
- added virtual column n. in printing titles => created also AdDocwayDatabase overload. So we can handle this
virtual column
- modified crumbs renderig, colors of first letters is depending on set, and all is in history.config.inc
also text it self is in config!!! so there is no more overload necessary
so there must be removed crumbs.pxml from resources!!!!
- FIX: order by components had non translated column names, now fixed
- FIX: DW to AD transfer had switche columns in config and in UI no
1.6.0.1 16/12/2011
- configured print action on transfer titles print (added all necesary classes)
- added header to the printing system
- bug fix in pxml.js, there were remote possibility that cfgField and queryField
can fail in case there is bug in variables PHP to js dump
- modified printing mechanismus, there were problem with curentDB clone
now page size for printing titles is send to db during clonning process, we avoid to call
executeQueryWithPageSize cause this one do also first title page, which for our
necesities is not good, we need our personalized title rule
1.6.0.0 15/12/2011
- Added version file
- Bugfix for tif images handling
- need in PHP.ini
upload_max_filesize=20M
memory_limit=256M
max_execution_time=90
post_max_size=20M
- need imagic and fileinfo PHP extensions
- BugFix for document save, problem with repertorio
element in case without repertorio, now it ommit empty repertorio element
- Fix: Added \" like text delimiter in ClassifField
- changed logout form