Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

User configurable views will be defined by using JSON objects saved in the OpenSRP couchdb database. They will be fetched by clients(phone or tablet) after configuring the OpenSRP base urlURL. OpenSRP server has a REST endpoint that the clients will use to sync views to the client. 

...

The Sequence diagram for User Configurable views

Image Modified

Sequence Diagram Keys: VC - View Configuration, SV - Server Version

The property serverVersion will be used for versioning. If a view configuration file is edited the serverVersion of the view configuration file will have to be updated so that the view configuration can be picked by clients when syncing configurable views. The property is number denoting unix timestamp; one can get the current unix timestamp from https://www.unixtimestamp.com and use that to update the property. Failure to increment server version when editing the files manually will result in the view configuration not to be synched back to the clients.

...

PropertyDatatypeMandatoryShould be updatedDescription
_idString*NoCouchDB Internal document ID used to differentiate different documents within CouchDB
_revString*NoCouchDB Internal document revision number used to differentiate different  revisions of the same documents within CouchDB. Dont amend this manually
typeString*NoCouchDB Internal document type used to differentiate different documents types within CouchDB. This should always be ViewConfiguration
identifierString*NoThis uniquely identifies this document. This will be used on the client to identify that this document if for a particular screen. This should not be amended
serverVersionlong*YesA long number denoting the unix timestamp when the document was updated/created. Its used for versioning by clients. Whenever a document is amended this property should be incremented to the current timestamp so that clients notice the document has changed and they can sync it.
metadataObject
YesThis will be an object that defines configuration at view level. It must have an attribute type that defines the type of configuration being defined.
viewsList of View Objects
YesThis will be populated for screens with configurable view components. It contains a list of view objects. The view object is described below.
labelsMap(Key value pairs)
YesThis will be populated for language configuration files. It will have a key value pairs of labels where the key will be identical in all language files but the value will be different for each language.

...