brunobuzzi / orbeonpersistencelayer Goto Github PK
View Code? Open in Web Editor NEWGemStone/S® persistence layer for Orbeon Forms®
Home Page: https://bpmflow.gitbook.io/project/orbeon-integration/orbeon-persistence-layer-for-gemstone-s
GemStone/S® persistence layer for Orbeon Forms®
Home Page: https://bpmflow.gitbook.io/project/orbeon-integration/orbeon-persistence-layer-for-gemstone-s
Add audit options for forms. In three categories:
Service to answer the Form Builder Summary page.
Search in the log for:
response body {body: "<?xml version="1.0".........."
opening URL connection {method: "PUT", URL: "
For some reason the labels are NOT show in the Form Instance and in the Form Summary
Right now all is store in:
Orbeon_Form_Data
Orbeon_Form_Definition
Migrate this to OrbeonFormDefinition and OrbeonFormInstance or mix both packages to have a final version.
What to do ?
Do an identical map of Orbeon relational tables to Orbeon.
When log in for the first time the following method is called:
WAOrbeonPersistenceLayer >> getFormVersion:app:
The application "orbeon" does not exist --> an error arise.
Stack:
NoOrbeonAppException (AbstractException) >> _signalWith: @5 line 25
NoOrbeonAppException (AbstractException) >> signal: @3 line 7
NoOrbeonAppException class (AbstractException class) >> signal: @3 line 4
[] in ExecBlock0 (WAOrbeonPersistenceLayer) >> getFormVersion:app: @4 line 11
OrderedCollection (SequenceableCollection) >> detect:ifNone: @11 line 10
OrbeonApplication class >> applicationNamed:ifNone: @3 line 3
WAOrbeonPersistenceLayer >> getFormVersion:app: @2 line 11
Rewrite:
WAOrbeonPersistenceLayer>>searchInFormSummary:app:
in order to use the index structures
In OrbeonApiConfiguration remove deferredXmlProcessing and pathForAttachments when a form is removed from Orbeon.
When access to Summary directly or searching by search field is working ok.
But "generic" search --> enter data in the default input (without clicking in "Show search options") fail because is not implemented. !
Right now Tomcat roles and users are disabled.
Test everything working with roles and users enabled.
Related to issue #20
WAOrbeonPersistenceLayer>>getArrayOfOrbeonHeadersFor:searchTotal:
property as="xs:string" name="oxf.fr.persistence.provider...*" value="gemstone"/>
property as="xs:anyURI" name="oxf.fr.persistence.gemstone.uri" value="http://192.168.29.130:8888/orbeon-api"/>
property as="xs:boolean" name="oxf.fr.persistence.gemstone.versioning" value="true"/>
property as="xs:boolean" name="oxf.fr.persistence.gemstone.permissions" value="true"/>
property as="xs:boolean" name="oxf.fr.persistence.gemstone.autosave" value="false"/>"
We have to turn "autosave" to "true" at some point.
The implementation of this project require OrbeonFormProcess project work seamlessly with:
During the OrbeonFormProcess installation we choose any of the repositories and work with that.
Eventually is possible to switch from one to another via GUI.
Now all forms definitions when about to publish show version 1 as the first. There is NO check to get the latest version of a given form.
See OrbeonDeferredProcessingQueue class.
Add some form to this class and other left out and test how it works.
When a form has a tittle in the labels the form can be save but Orbeon can not load the XML inside the form builder. á é í ó ú ...
1- Create a Form without save it.
2- Wait until the draft is saved.
3- Close the explorer window of the form without pressing "Send"
4- Go to Summary and try to remove the draft
Store a form instance after the user clicked send !
Now it show the entire result in one web page
Implement store of form instances after send is clicked
<query name="language" path="details/language" label="Language" type="xs:string"/>
<drafts>include</drafts>
<!-- Paging -->
<page-size>10</page-size>
<page-number>1</page-number>
Drafts
The element is used to tell the implementation of the persistence API which documents we're interested in, and thus which documents it must return:
exclude: don't include drafts.
only: only return drafts
include: return both drafts and non-drafts. This is the default if the element is missing.
For some reason repeatable fields are not set with isSummary and isSearch.
Add search field to an existing Form Definition with instances.
The new search fields already has value field's, what happend with the indexes ?
Right now all version of a given Form Definition and Instances are stored in the same collection analyze to use a Dictionary to split definitions and instances by version.
Right now search criteria is applied only to Final Form Instances, the drafts are always displayed (if the user has the authorization).
A given form can have more than one draft at any given time (only in a NEW page):
https://github.com/orbeon/orbeon-forms/wiki/Form-Runner-~-Autosave
See comment below !!!
Right now these values are not set in Orbeon_Form_Data.
When a user access to a Summary page and there is NO search criteria --> answer anOrbeonFormDefinition instances.
Answer the entire collection and after that a chunk of the collection is the result:
(filteredInstances copyFrom: from to: to)
The problem is if the collection has one millon elements ???
It should be:
anOrbeonFormDefinition instances copyFrom: from to: to
Check in all places where "orbeon-definition-version" is set and verify is set with the correct value.
Save form definitions with attachment fail if the form was not previously saved without the attachments
Check if any operations is needed when from /orbeon/fr/ we publish and unpublish some form definition.
In ../orbeon/fr/ create services for the following options:
Implement service for form runner summary (user created applications and forms)
Unify Permission concept between OrbeonFormDefinition and Orbeon_Form_Definition.
Now is very simple:
Orbeon_Form_Data cache.
Orbeon_Form_Definition cache.
When attachment is uploaded --> is stored on disk. If the Form is not published or removed or the attachment is chaged the file remain on disk.
Delete unused files on disk
Check:
http://blog.orbeon.com/2013/10/supporting-permissions-in-your.html
It seems not possible for non Java applications.
Service to answer the Form Builder Summary page.
Search in the log for:
response body {body: "<?xml version="1.0".........."
opening URL connection {method: "POST", URL:
When there is more than on draft in a regular Summary --> they can not be deleted.
Right now only works with forms with NO attachments (form definitions and form instances)
Now the attachment file name is only the fileId.
Change this to: [parentID]-[fileID]
[parentID] = [definitionID] | [instanceID]
This will help to delete unused file by form definition. Now we delete all at once (this is a time and resource consuming operation).
Being able to delete by form definition will mitigate this situation.
Implement file attachents with OrbeonFormInstance, OrbeonFormDefinition, OrbeonApplication.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.