Giter Site home page Giter Site logo

brunobuzzi / orbeonpersistencelayer Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 6.46 MB

GemStone/S® persistence layer for Orbeon Forms®

Home Page: https://bpmflow.gitbook.io/project/orbeon-integration/orbeon-persistence-layer-for-gemstone-s

Smalltalk 98.85% Shell 1.15%
smalltalk persistence-layer orbeon-persistence-layer gemstone orbeon meta-model

orbeonpersistencelayer's People

Contributors

brunobuzzi avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

rubenmarquardt

orbeonpersistencelayer's Issues

Add audit options

Add audit options for forms. In three categories:

  • Draft audit (store all instances of all drafts)
  • Instances audit (store all instances of all forms)
  • Definition audit (store all definitions of all forms)
    The audit only store basic data (document_id, createdTime and so on) plus the XML but does NOT store the Sections structure. This can be created from the XML string.
    The audit can be enabled/disabled by app and form.

Rest: Obeon Form Builder New

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: "

Initial Form Builder error

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

Add indexes to search

Rewrite:
WAOrbeonPersistenceLayer>>searchInFormSummary:app:
in order to use the index structures

Generic search not implemented

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. !

Set Orbeon configuration to store form in GemStone

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.

Implementation Requirement

The implementation of this project require OrbeonFormProcess project work seamlessly with:

  • MySQL
  • PostgreSQL
  • GemStone

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.

Form Definition Version toolbox

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.

Deleting only draft

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

Create Maintenance Scripts

Create Maintenance Scripts for:

  • Delete unused files (depend on issue #35 )
  • Delete unused applications and form names from OrbeonApiConfiguration (solve issue #34 ).

Include [drafts] option in the search

<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.

Add search field to an existing Form Definition

Add search field to an existing Form Definition with instances.

The new search fields already has value field's, what happend with the indexes ?

  • the current indexes
  • the old collection has to have indexes ?

Orbeon Storage split collections by version

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.

Optimization of chunk collections

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

Implement Service to work with Remote Forms

In ../orbeon/fr/ create services for the following options:

  • Publish Remote Forms
  • Unpublish Remote Forms
  • Push to Remote
  • Pull from Remote
  • Upgrade local form definitions
  • Upgrade remote form definitions

Delete not used attachments

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

Rest: Obeon Form Builder Summary

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:

Delete drafts

When there is more than on draft in a regular Summary --> they can not be deleted.

Change attachment file name to id-fileId

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.