(Redirected from Ginstr web updates)
Jump to: navigation, search

ginstr logo main.png web updates

This wiki page lists all important new features of each update

Update 07.11.2019

This is a combined ginstr launcher / ginstr web update. The following features have been added:

ginstr launcher:

For following operators case insensitivity has been implemented:
  • caseIgnoreContains
  • caseIgnoreStartsWith
  • caseIgnoreEndsWith
  • gn:act_copyDataNew allows copying of a name/email value into a variable a pointer is pointing to
  • gn:act_sendEmail allows adding multiple different attachment types to an email (i.e. pictures and documents at the same time).
This new feature also adds support for PDF document attachments which are created locally on the mobile device.
  • GnListOfMedia allows displaying a list of sound files including playing and deleting them.
This new feature displays the following information:
  • time of creation of the audio file
  • duration of the audio recording
  • play button
  • trash button
  • Improved audio recording
While recording an audio file, a popup is shown which cannot be left by the user without stopping the recording.
This ensures, that the user cannot leave a screen while audio recording is in progress.
In case the user presses the home button while audio recording is active, then the recording will be still in progress.
in case the user kills the app the audio recording will stop and the sound file will be saved on the device in ginstr/currentappId/userData/audio folder.
  • Scan, view and share NFC ID outside ginstr app
A new option in the settings screen, which is accessible form ginstr launcher as well as from any ginstr app, allows to scan an NFC tag.
The NFC ID is shown immediately after scanning it and it can be copied to the clipboard for further processing it (e.g. by pasting it elsewhere).
Pressing "share" opens the context menu where the NFC ID can be shared with other apps.
To the frequency datatype the following options have been added:
  • 3 years
  • 4 years
  • 5 years
  • Displaying date and time information and GPS information in taken pictures
with the feature enabled on widget all pictures that are taken will display on top of picture following information:
  • date and time which indicate when the picture was taken. Date and time can be formatted into desired date and time format.
  • GPS coordinates, latitude and longitude are stored below date and time information in picture and indicate location at which picture is taken

ginstr web:

For audio and for video files from now on "duration" and "created on" information is stored along with the files.
To the frequency datatype the following options have been added:
  • 3 years
  • 4 years
  • 5 years
  • Filtering of tables based on assigned values
This new feature allows to define that based on assigned value(s) tables get filtered to show only records that contain that value(s).

Update 07.08.2019

This is a ginstr web update. The following feature has been added:

  • New portlet content "charts"
With this new portlet content it is possible to view data in ginstr tables as charts.
The following chart types have been implemented:
  • axes charts like bar charts, line charts etc.
  • pie charts
Almost all existing data types are supported.
Grouping and aggregation:
Grouping and aggregation are tightly related in a way that aggregation cannot exist if some grouping is not defined.
Grouping is used for X axis values and aggregation is used for Y axis values
In case a chart shows aggregated or grouped data then clicking on such data drills it down and shows all the details how this aggregated data has been composed.
3D charts will follow in one of the next releases.

Update 04.06.2019

This is a combined ginstr launcher / ginstr web update. The following features have been added:


  • New approach for fast sign up process and test accounts
From now on users interested in testing the ginstr platform can register an account with very few steps and without providing any personal information.
The demo account can be used without any limitations for 30 days. Extending the test period is possible on request. Please contact ginstr in this case.
  • Improved validation of e-mail addresses across the whole platform
So far in different places of ginstr web and ginstr launcher email addresses have been validated differently. This was unified now.
  • Unification of rules for sorting
So far sorting was done differently in differnet parts of ginstr web and ginstr launcher.
This has now been unified. The following sorting order has been implemented system wide:
["[space]", "1", "2", "a", "A", "ä", "Ä", "b", ... "z", "Z"]

ginstr launcher:

  • Sorting attribute gn:s_sortOrder has been implemented;
This feature allows to change sorting order between ascending and descending or to leave widget content unsorted
  • Support for multiple themes in one app
Until now all graphics used in one app must either be part of the same 'theme' or they must be contained in appSpecifics folder.
The new feature allows creating apps which use multiple themes for different parts of the app.
Example: in case an app has some screens to receive parcels and some other screens to deliver parcels then for the screens for receiving parcels the app developer might use a red theme and for the screens for delivering parcels the app developer might use a blue theme.
The new action gn:act_addPointerToAssignment has been implemented.
An assignment is a group of pointers. This new action enables easier compiling of pointersand saving it to an assignment datatype cell.
Additional attributes 'url' and 'thumbnail' have been implemented. This can for ex. be used to compose a report email with picture url's, where a click on a thumbnail with url will directly open the image in a browser.
gn:act_convertDatatype now supports conversion from dateTime to date datatype
  • Support for Italian language
  • Replication notification in status bar is displayed only in case there is some problem
Replication is the process to exchange data between the smartphone/tablet and the ginstr servers.
So far the replication status was displayed continously but it was found, that such information is not required in case the replication is working as expected.

ginstr web:

  • Possibility to enhance ginstr apps with system table system:devices that tracks online activity of that account's smartphones
System table "devices" provides information about the online activity of each smartphone / tablet.
This table exists since long time but so far it was not accessible for regular users but for the ginstr support team only.
Now during app development the app developer can enable the visibility of the table in ginstr web and he can access it from inside a ginstr app.
If enabled, the user can add following information to this table in ginstr web:
- phone number
- comments
The user can also delete a device from this table in case a smartphone is not longer used; the device will be restored automatically in case after deleting it the device will be used again.
The documents datatype allows storing documents (e.g. PDF files) in the ginstr database.
On top of the previously implemented datatypes it is now possible to upload the following file formats:
- bz
- bz2
- eml
- gz
- zip
  • Support for Italian language across the whole platform

Update 03.09.2018

This is a combined ginstr launcher / ginstr web update. The following features have been added:

ginstr launcher:

  • new actions for checking on/off status for device communication modules
gn:act_isWIFIActive returns true if the device's WiFi module is active
gn:act_isNFCActive returns true if the device's NFC module is active
gn:act_isDATAActive returns true if the device's mobile internet (data) module is active
  • support for auto-starting ginstr apps on device start-up
Some ginstr apps offer the option to "start ginstr app on boot".
To support this feature, the ginstr launcher settings menu now lists the name of any app for which the feature is active under the heading "start ginstr app on boot"
Action is used to force the device screen to remain on when the user is not interacting with device.
  • enhanced use of WiFi to support GPS data used for device location
In some use cases the location data obtained using WiFi is acceptable in comparison to real GPS data.
This new update enables the predominant use of WiFi location data where possible, which offers the advantage of lower battery usage compared to GPS.

ginstr web:

Feature can be used to identify the total length of time for each status option set.
For example, an asset tracking app can show how many hours a particular asset has had status "under maintenance" to compare against working hours.
Vertical scroll implemented for automated reports dialog screen in order to improve appearance & layout when viewed on devices with low screen resolution.
If active, the legend, which groups pushpins by colour & proximity to provide clustering information at a glance, will be shown at the top right of any portlet assigned to display a map.
The option can be found along with additional map portlet settings under the portlets heading in the ginstr web account settings screen.
  • removal of deprecated geofences table
Function is now performed by dedicated system table
  • removal of "trackables" option from portlet chooser

Update 03.08.2018

This is a combined ginstr launcher / ginstr web update. The following features have been added:

ginstr launcher:

  • autocapitalize feature
Setting attribute gn:autoCapitalize to true on any GnEditText or GnAutoCompleteTextView widget results in the first character entered by the user in the input box to be automatically capitalized.
This feature can also be applied to all GnEditText or GnAutoCompleteTextView widgets in a particular app using the attribute autoCapitalize in common.xml.
  • possibility to limit number of decimals while typing
New attribute gn:maxNumberOfDecimals can be used with GnEditText widget to define the maximum number of digits that can be entered after a decimal point in the input box.
  • empty spaces/tabs validation at raw actions and queries.xml
When comma separators are used to enter multiple query columns, empty spaces and tabs between column names can return incomplete query results. A parser has been implemented to detect this and alert XML developer to incorrect syntax usage.
Action now supports date datatype
It is now possible to manually define the number of times to repeat the execution of commands, instead of by row count
Supports gn:act_widgetContent and restriction of frequency options for Dropdown widgets
  • enhanced thumbnail display for signatures with embedded information
For instances where the user can sign on top of some information which is stored as part of the signature, this embedded information will be visible at the top of the cropped signature thumbnail displayed on screen.
  • enhanced questionnaire dropdown to use different tables of same app as source
Addition of "dropdown table" to store dropdown options for Dynamic questionnaires rather than entering options manually for each individual question
  • possibility to delete captured photos in app
Provided gn:allowPhotoDeletion attribute is set to true for the GnMediaGallery widget, the app user will be able to delete captured photos by long clicking on an image in gallery or on image preview it will show dialog to delete image.
Ensures that all query actions which are changing data in table (gn:act_rawWriteValues, gn:act_rawUpdateValues, gn:act_rawBulkUpdateValues and gn:act_rawDelete) are supported in chains in any order.
Allows column in one ginstr app table to point to a table belonging to a different ginstr app belonging to the same account. This is especially useful for customers that have multiple ginstr apps with some shared table (e.g. same user table)
Allows phone numbers entered as a response to a questionnaire to be saved to ginstr web table as phoneNumber datatype
  • Autoselection of items in required dropdowns in case only one item exists in dropdown
Improvement of dropdowns dependent on other dropdowns whereby if selection of one dropdown leaves only one option in subsequent linked dropdown, then the single option is selected automatically for the user.
  • support for dropdown widget inside listview
Allows placing GnDropDownwidget(s) with database or local source within a GnListViewwidget
  • possibility to open hyperlinks in the browser
Clicking on hyperlinks within a ginstr app will now open the device browser to the desired page
  • possibility to disable zero item in dropdown
Allows the option to hide '0' values from GnDropDown widgets
  • possibility to start QR service on any screen
Until now it was only possible to use GnEditText widget as a trigger for launching the QR code service. With this update it is now possible to define any widget to be used as a trigger and also define multiple targets as recipients of service result via actions (rather than XML attributes). This eliminates the need for helper widgets, and gives the ability to not only set the result of a QR scan to widget but directly to a variable or any other target in our data oriented approach.
Error messages returned from GnLogin, ginstr web and SSO server will now display an error code to enable easier debugging.
  • removal of leading and trailing spaces after input of text
Any spaces entered before or after text entry to GnEditText widget or other text entry controls will be removed automatically upon save to ginstr web table.
  • generic approach for restoring app state if crashed or force closed
New variable isAppNormallyClosed is used to store when an app is closed normally. This enables an automatic check of this variable on app start. If stored value is false, a yes/no dialog will be displayed (with timestamp of last backup and some additional data) and restore app state (stack + variables) enabling restoring app state.
  • support for checking group of columns uniqueness
New function to ensure acceptance of uniqueKeys element of configuration.xml
  • usage of new required validator messages in questionnaire
GnQuestionnaire widgets now use validator messages such as 'entering a decimal number is required', as defined in $defaultApp string resources
GnBankDetails widget provides ability to enter bank information (IBAN number, BIC number and bank name) and store information to datatypes. Entered information is validated and stored as new datatype bank details
  • Android side confirmation of Terms & Conditions

ginstr web:

  • map improvements
    • Possibility to define the length of time that tiles of map will be cached for
    • Possibility to choose whether or not the map scale is displayed on the map
    • Possibility to choose whether or not the longitude / latitude is be displayed on mouse cursor on map
    • Improved representation of pushpins and record details pop-up on mouse-over pushpin
    • Improved filtering of GPS datatype
    • Empty coordinate value (i.e. GPS unavailable) is ignored
    • Pointers to geo-fences now display and highlight those geo-fences on map if selected
    • Address search feature in map portlet (geo-coding)
    • Grouping of pushpins that are on same coordinates (or very close to each other)
    • Clustering functionality which shows count/proportion of markers in close proximity at a given zoom scale in a user-friendly way
  • calendar improvements
    • New Timeline slider for calendar portlet that gives the user the possibility to easily access data of different time frames in a selected table
    • Possibility for user to define start and end column for calendar portlet independent of actual order of columns in table
    • Calendar now works also with pointers to date and dateTime datatypes
  • New export file app/table name option
A checkbox option allows user to choose whether or not the name of the application and table should be included in the first line of the exported file (Excel, CSV & automated reports). Note that this information is required to re-import the data to ginstr web so any file exported using this option selected will no longer be suitable for import.
This datatype is used to store data from the new GnBankDetails widget
  • Possibility to define pointer in application to table of some other application
Allows column in one ginstr app table to point to a table belonging to a different ginstr app belonging to the same account. This is especially useful for customers that have multiple ginstr apps with some shared table (e.g. same user table)
  • Possibility to separate values with pipeline in multiline text editor
If the multiline checkbox and the separate with | values entered in different lines checkbox is checked for a column with text datatype, then the pipe character (|) may be used to seperate values on to different lines
  • x button in search field
Button clears any value currently entered in the search field.
  • Improved search functionality for tables of ginstr web
A new dropdown box allows the user to select one of the following additional search functions:
  • contains - works as usual. result shows All records which includes substring from search field.
  • is empty - returns all records which has empty cells
  • is not empty - returns all records which not contains empty cells
  • not contains - reversed result for "contains" case
  • like - return all records which contains value from search input field of similar to it. Similarity is calculated using "levenshtein distance" algorithm.
e.g. 'back'/'book' distance is 2 (here is 2 symbols to replace)
'bisschen'/'bißchen' distance is 2 (ß == ss)
Also all umlauts replaced 'Ä' -> 'Ae', 'Ä' -> 'Ae', 'Ü' -> 'Ue', 'ä' -> 'ae', 'ö' -> 'oe', 'ü' -> 'ue'
  • is not - return all records which has not the exactly same values like in search field input
  • indication that filtering by parent selection is active on table
If the selected table is filtered based on parent selection in pointed table then this is now indicated in filter dialog
  • colour coding of empty required column headers
Headers of required columns are displayed red in edit record details portlet if there is no data in those columns
  • security question dialog if changes are made in table but not saved"
If a user makes some changes to a table in table edit mode and subsequently canceled or closed then a security question dialog will be shown to inform the user that if they leave table edit mode without saving then all the changes will be lost.
  • possibility to have unique group of columns in table
This update allows a group of columns to share a unique status (i.e. one value cannot be stored more than once over any of the grouped columns). For this release this feature is implemented in the backend only at this stage.
  • possibility to save custom default column order for tables of ginstr apps
  • time picker now supports all locales
  • various updates to adhere to new General Data Protection Regulations (GDPR)

Update 13.04.2018

This is a combined ginstr launcher / ginstr web update. The following features have been added:

ginstr launcher:

  • possibility to rename all media files in ginstr apps
When photos, signatures, videos or audio files are recorded, Android assigns automatically a generic name to each file.
With this new ginstr launcher version it is now possible to overwrite this generic file name with a name that makes more sense for the user, for example the user name can be used as file name for a signature file.
  • new action that enables opening of external app with GPS coordinates
This new feature allows the selection of a GPS coordinate previously stored by a ginstr app or from a table in ginstr app to be opened by a 3rd party navigation system such as Google Maps to navigate to this GPS location.
  • possibility to add a signature on some custom background
in some cases it is required to display a previously captured signature for posterity.
This update allows an app to display some information (e.g. terms, a price, a picture etc.) and then the user can sign on top of this information.
After signing, the signature stored as a graphics file to the ginstr web table will also contain the information that was displayed while recording the signature.
  • possibility to have multiple signatures in one table cell
Until now, it was only possible to store one signature in a single table cell.
From now on an unlimited number of signatures can be stored in one table cell.
  • in case GPS is not available it is now stored as empty value instead of 0,0 coordinate
Due to the fact that 0,0 is a valid GPS coordinate (somewhere in the ocean close to the coast of Ghana, Africa) it was decided to represent an unavailable GPS coordinate with an empty cell instead of 0,0.
  • possibility to convert a GPS coordinate into an address using the ginstr NOMINATIM service
Nominatim is a service provided by ginstr that allows converting GPS coordinates into addresses.
This is very helpful e.g. in case a smartphone or a GPS tracking device reports a GPS coordinate and the user must then understand where the given location is without having a map.
From now on it is possible to convert a newly recorded GPS coordinate in a ginstr app almost in real time into an address with street name, house no, ZIP code, city name etc. Please note that this only works while the smartphone has an active internet connection.
  • possibility to define border colour of GnCheckBox widget
  • possibility to define triggers for launching GPS service
On many phones the GPS service drains the battery significantly. In order to reduce GPS related power consumption as much as possible it was decided to implement triggers for activating GPS.
This allows ginstr app developers to define precisely when GPS should be switched on and off.
  • improved system logs
enabled by default: system logs are from now on enabled constantly. The last 200 MB of data will be kept.
improved log content: based on recent experience we have significantly improved the content of the system log files. This will make it easier for our developers to track down some unexpected behaviour of a ginstr app.

ginstr web:

It is now possible to see events in a typical calendar format.
Like with the map and with "edit record details" portlet content it is possible now to select records in a table and then to see the events stored in the selected records in the calendar portlet.
More details can be found here
  • original value for pointer and assignment cells
Some tables have columns with pointer or assignment datatype. In this case, the content of the cell is loaded from another table.
In case the pointed value was changed, then up to now the changed value was shown in the pointing cell.
From now on the user has the option to see the original value when creating the record as well as the new value.
A typical use case is if someone marries and takes the surname of the spouse as his/her new surname.
In this case, if a person joined a company before being married with surname "Miller" and then marries and therefore has new surname "Smith" then from now on it is possible to see the surname at the time the person joined the company as well as the surname after being married.
  • selection of the time zone
until now the user had to configure the time zone for his user account in the ginstr web account settings page.
With this new ginstr web version the time zone is automatically retrieved from the time zone configured in the operating system (e.g. Windows).
  • It is now possible to export tables that have pointers to system tables
System tables are tables that hold information which is not related to the business logic.
in the ginstr web account settings page it now shows the number of booked subaccounts and the number of active subaccounts
Until now when changing the settings of an automated report a sample report was sent automatically to all configured recipients.
With this new ginstr web version it is configurable if (as previously) all recipients should get a sample of the modified automated report immediately after saving it or if just the person changing the report settings should receive such a sample report.

Update 23.01.2018

This is a combined ginstr launcher / ginstr web update. The following features have been added:

ginstr launcher:

Action is used to set the format when outputting targets as strings
QR, barcode & NFC widgets recieve data upon code/tag scan and store it into the results table as text values.
  • crash logs are now updated to contain the serial number of the device
  • new feature to store 10 most recent crashes in the $debug folder and implement getBugReports command to extract those crashes from the device
  • new transaction mechanism to ensure data consistency when executing app business logic
  • it is now possible to define the colour of the border for GnCheckBox widgets
  • a dialog window will now be shown on log-in if a database requires reindexing
Action is used to ensure uniqueness of values in ginstr apps
Action is used to convert copy content from source widget of one datatype and store value as required to a destination widget of another datatype
Action is used to read value from a text target and store the value into text targets
Action is used to support the use of geo-fences in ginstr apps
Action is used to delete a ginstr web table record using a ginstr app
Action is used to detect whether the GPS module is activated on the device
Action is used to return the user to Login screen
Action is used to set the focus on a defined widget.
  • Automated Reports now follow settings from the "export" column in the report tab rather than "web" column
  • a context menu icon has been added to the top-right corner of each table portlet
this icon has the same function as right-clicking anywhere inside the table portlet to display the context menu
  • date & time selection displays localized AM/PM value
(e.g. if German is selected as the display language, vorm. / nachm. is displayed instead of AM / PM)
  • date & time formatting is refactored with localized formats for date & time
(e.g. if German is selected as the display language, Freitag, 25. August 2017, 12:45:06 is displayed instead of Friday, August 25, 2017, 12:45:06; 12:50:33 nachm. is displayed instead of 12:50:33 PM)
  • attachment editors now use React
  • backend support for storing both original and current value of pointer
  • It is now possible to use geo-fences in ginstr apps (see here for instructions on how to add/edit geofences)

Update 19.01.2018

This is a ginstr web update. The following features have been added:

  • generic plugin for scheduling alerts
This plugin allows recurring tasks which should be completed at regular intervals (e.g. hourly, daily, weekly monthly etc) to be scheduled automatically.
A new "task list" system table is used to configure recurring tasks and their associated alerts and statuses. Pre-alerts can be send to specified recipients as a reminder, with additional alerts for completed or missed tasks.
  • automatic selection of language and timezone for new accounts based on user browser settings
ginstr web will now detect and apply the language and timezone of a new user automatically during initial set-up.
  • option in filter dialog to hide records that contain some value
In the filter dialog window, a new
button can be used to hide records with cells which contain the text string entered. Initially this feature is available for text datatype only.
  • data.xml now supports generation of records with attachments
  • SSO ticket authorization via cookie rather than URL string
Cookie authorization allows quick, seamless transition between ginstr web applications.
  • content of e-mails that are sent from ginstr tables can now be encrypted
For security & privacy, the option to "Encrypt automatic reports when sending" is now available for reports sent via e-mail. Attachments are encrypted AES Winzip compatible.
Encrypted attachments can only be opened upon entering the correct password, which is specified in ginstr web.
  • "read-only" attribute is implemented for all datatypes
Setting this option means that a record can be created via a ginstr app but cannot be modified later in ginstr web.
Using this datatype, tasks can be scheduled to be executed at regular intervals. The following options are available:
  • hourly
  • daily
  • weekly
  • bi-weekly
  • monthly
  • quarterly
  • yearly
  • bi-yearly
  • improvement of signature datatype
This update allows multiple signatures to be stored in a single cell of a ginstr web table
Previously, variables used in automated reports were in English only. This update adds translation of variable names for all supported languages.
  • various bug fixes and improvements

Update 13.10.2017

This is a ginstr launcher update. The following features have been added:

ginstr launcher:

  • Resume ginstr app from home screen
If a ginstr app is running and the device home button is pressed to return to the home screen, the app can now be resumed by pressing the app icon. This will return to the ginstr app screen which was active before returning to the home screen rather than restarting the app completely.
Action is used to vibrate the device in a pattern according to set parameters
Action is used to play beep sound according to set parameters
Action is used to calculate driving distance between two GPS coordinates and store the result into target
Action is used to retrieve device serial number and store into target
Typing a search string in the new search field at the top of the $defaultApp screen after login to ginstr launcher will filter the list of installed apps to show only those app names containing the search string entered.
  • New 2-step query system
Improved query engine reduces the database size by up to 80% and improves indexing speed by only returning document id and revision upon query. Full document retrieval is then carried out following selection of query result.
Minimises delay when deleting characters from entry field in app
  • Dropdown fields with data entry errors are now highlighted by colour
If a data entry error results from a dropdown field within an app, the dropdown which caused the error will be highlighted in a different colour on-screen for clarity.
  • New command: getDeviceHardwareInfo
Remote command which retrieves device hardware information from specific device
Widget which will be used in situations with large dropdown data (100+ entries) and manual search is not viable.
GnAutoCompleteTextView widget looks like an EditText but after entering a few characters it will show options for selection. It will have the same abilities as current control GnDropDown and it will be "recognized" as pointer datatype widget.

Update 12.09.2017

This is a ginstr web update. The following features have been added:

For tables containing date & dateTime datatypes, the following additional predefined filter options are now available in the filter settings dialog window:
  • next week (Mo-Su) (or Su-Sa depending on applied settings)
  • next complete month
  • next year (Jan-Dec)
  • this quarter (starts on Jan 1, Apr 1, Jul 1, Oct 1)
  • previous quarter (starts on Jan 1, Apr 1, Jul 1, Oct 1)
  • next quarter (starts on Jan 1, Apr 1, Jul 1, Oct 1)
Plugins handle certain complex functionalities which cannot be handled in any other way (for example executing some calculations based on data in two separate tables, or sending e-mails based on data which requires certain information from different tables of an app etc..). The plugin names have been simplified for clarity on the plugins section of the SSO 'My account page', which shows a list of all plugins installed for that specific account and allows the main user to modify the settings of each of those pluginsif necessary.
The currently selected timezone can be changed in the General Settings section of the ginstr web account settings page

Update 01.07.2017

This is a ginstr launcher update. The following features have been implemented:

The settings options are now accessible directly by clicking on the settings icon in top left corner of the screen
  • new command resetDatabaseReinstallApps
A new command has been implemented that can be sent from ginstr web to one or more phones.
This command removes all apps and data from the phones, then re-installs previously installed apps.
The command can be used in case there is some unpredictable behaviour of the software on a phone.
  • custom filename of photo taken in app
This new feature allows the ginstr app designer to define the pattern for the file names of photos taken with a phone inside a ginstr app.
Wherever date or time formats are shown in a ginstr app it is now possible for ginstr app designer to request that these dates or times are shown in format selected in ginstr web settings.
  • hide text on QR code widget
It is now possible to completely hide text on QR code widget and show only an image instead.
  • auto sort of dropdowns
All dropdowns in all ginstr apps are now auto sorted "ascending" by default unless different behaviour is requested; this is also effective for all existing ginstr apps
ginstr launcher allows recording signatures of users, clients etc.
ginstr launcher also allows sending emails based on some event: for example, it is possible to automatically send an email after storing a damage report with a ginstr app directly from the phone to responsible managers including formatted HTML emails.
It is now possible to show signatures in HTML emails sent by ginstr launcher.
  • add pictures to cell with existing pictures
If previous pictures exist in a table cell then it's now possible to take additional pictures via ginstr app which will be added to those existing instead of replacing them.
GnChronometer widget can now use custom date and/or time format

Update 26.06.2017

This is a ginstr web update. The following features have been implemented:

  • New system tables for data export logs and data export errors
During the initial export of data, the following system tables are created:
  • system: data exports
  • system: data export - errors
These tables can be found in the 'system tables' section of the portlet chooser.
  • Improved access rights for system tables
A new functionality exists for the following system tables:
  • system: automated reports
  • system: automated reports - errors
  • system: data exports
  • system: data export - errors
  • system: data imports
  • system: data import - errors
This new feature ensures that the information stored in these tables can only be viewed by responsible persons as follows:
  • the information stored in the above system tables related to reports requested by a main user can only be viewed by this main user;
  • the information stored in the above system tables related to reports requested by a sub user can only be viewed by this sub user and the main user;
  • Improved data export feature
  • In case you do not have read access to any related table, it was not possible before to export 'all tables of a ginstr app' or a 'table with dependencies'
Now such export is possible and pointers in columns of exported tables where columns are pointing to other tables will be replaced by the values of the pointed table instead of exporting the pointers.
This means that it will NOT be possible later to re-import this data into the same table because this would destroy the pointers.
  • The possibility to export data including settings which were set in export dialog. These settings are included in a separate properties file and enable that on import of data it is not relevant which settings are chosen in import dialog but data will be always imported based on the settings in included properties file
  • Improved automated reports settings
A feature has been implemented that allows adding the following variables to the e-mail body section:
  • $dateFrom
  • $dateTo
  • $reportType
  • $reportName
  • $requestingUserAccount
  • Import / export of big amount of data has been improved
The previous version of ginstr web failed with a timeout error when importing / exporting a big amount of data; this has been fixed.
  • Sub accounts handling improvements
  • input fields have been added to the subaccount management screen in SSO which allows each user of a sub account to enter their first name and last name when creating a new account;
  • main user can now modify the sub account username (which is typically the e-mail address of the sub account user)
Until now, subaccount user information was handled in SSO and not on ginstr web.
For some ginstr apps, this meant that it was mandatory to setup a separate app user table on ginstr web for supporting some required business logic on top of just logging in. In return this meant, that it was required for those customers to maintain user information in two different places: SSO and ginstr web.
With the new implementation it is possible now to
  • access SSO user information on ginstr web and from ginstr apps
  • add columns to ginstr web user table such as assignments, date of birth, or any information that is required for particular ginstr apps. The core user information including SSO user name, first name, last name, NFC ID etc, are all synchronised automatically between SSO user management and ginstr web user table.
Please contact ginstr support if you would like to update your app in order to use this new feature. This service will be free of charge.
  • Possibility to define the horizontal allocation of numbers in the cells of a table
It is now possible to define for each column with number datatype, if the number should be shown on the left bound, right bound or centred as follows:
  • for self-created tables you can adopt this setting in 'edit columns' context menu option
  • for ginstr apps tables, it will be defined by the ginstr app developer
  • 'assign all' / 'unassign all' feature in assignment datatype editor
The assignment datatype allows to assign records of a table to another table and vice versa.
A table with 'members' exists and another table with 'clubs'. With the assignment datatype, it is possible to assign several 'members' to one 'club' and to assign several 'clubs' to one 'member'.
So far it was possible to add a record to the list of assigned records and to remove a record from list of assigned records.
With the new feature, it is now on top possible to add / remove all records of a table to/from the list of records assigned to another table.
  • Fixing pointer values
Pointers in table cells allow to point to a cell of another table.
A home healthcare business has two tables:
  • one table with residents and
  • one table with services rendered to these residents.
In this case the table 'services rendered' might point to column 'last name' of table 'residents'. This has the benefit that if you click on a resident you will automatically see all services rendered to this resident.
Now imagine one of these residents marries and therefore changes their last name. Master data in table 'residents' would then be updated accordingly. In this case, there are two options now regarding the pointed last name in table 'services rendered' for all reports recorded before the marriage:
  • show the actual last name before the marriage
  • show the last name taken after the marriage even for the reports recorded before the marriage
The new option 'fix value' for columns with pointer datatype allows you to decide whether the new last name should be used in the above example for viewing older reports or if the last name should be used which was valid at the time a report has been created.
  • possibility to publish plugins for ginstr apps and to modify settings of those plugins in SSO
Plugins handle certain complex functionalities which cannot be handled in any other way (for example executing some calculations based on data in two separate tables, or sending e-mails based on data which requires certain information from different tables of an app etc..).
With this new feature, there is a possibility to publish plugins for ginstr apps and also in SSO 'my account' section, there is a separate section for all plugins installed for that specific account where main user can modify the settings of those plugins if needed.
  • 'adopt reports to selection in table' functionality for formatted reports
This new button 'adopt reports to selection in table' is activated by default and enables a selection of records in related table to be automatically displayed in formatted reports portlet as only content. When deactivating the button 'adopt reports to selection in table' then changing the selection of records in related table does not affect the content which is displayed in formatted reports portlet.

Update 26.05.2017

This is a ginstr launcher update. The following features have been implemented:

Update 02.04.2017

This is a combined ginstr launcher / ginstr web update. The following features have been added:

ginstr launcher:

  • Questionnaire feature now supports decimal AND integer numbers
  • Faster and more reliable replication by improving the indexing mechanism and the database compaction
  • Importing of ginstr app initial data from data.xml files when app tables are generated in the ginstr cloud:
Potential users of ginstr apps often want to try the functionality of some ginstr apps for better understanding the power of ginstr apps and ginstr web.
Most of the apps require entering some master data in order to try the most powerful features of the app.
In order to make the testing of ginstr apps as seamless as possible it is possible now to store demo data inside a ginstr app in data.xml file and to load this demo data into the ginstr app master data tables when activating an app the first time for a specific user account.
For ginstr apps using dynamic questionnaires this feature can be used to provide default questionnaires which can then be modified by the users as required.
This allows providing apps with specific questionnaires without any development work but just filling the data.xml file with the desired questions.
  • New action: generate report and store it in the database

ginstr web:

Along with new Advanced Reports functionality, Automated Reports allows you to schedule automated reports which are generated and sent via e-mail to predefined recipients at defined times.
  • Create report on phone, convert it instantly and automatically into a designed form and send it by e-mail to predefined recipients.
The first ginstr customer using this feature will use it to send flat handover protocols to all involved parties after creating such a protocol when moving into a flat or when moving out from a flat.
  • Functionality to enter directly some URL to go to a workspace in ginstr web
It is possible now to copy the URL of a ginstr web workspace and to use it later to return to the same workspace.
In case since the last login more time expired than configures for the time-out, a new login will be requested and after successful login the program will return to the desired workspace.
Creating unique sequence numbers (e.g. order numbers, invoice numbers etc.) is critical for many ginstr customers.
In most cases new documents are created with a ginstr app. Since ginstr apps can work offline it is not 100% sure that a newly assigned sequence number will be in all cases unique because a phone might be currently offline and therefore other phones might not be notified immediately about the newly assigned sequence number.
In order to handle this issue a new datatype counter has been implemented which works as follows: instead of assigning a new sequence number in a ginstr app immediately a placeholder will be used and as soon as the phone is able to exchange data with ginstr web the server side software will assign a unique sequence number. This new sequence number will then be replicated to all involved parties.
  • Storing of the column sequence per table as new default
This updated default settings will be used in case a table will be newly assigned to a portlet.
In case user selects this option while a report is shown which is different from RAW DATA then the column sequence of the report will be stored as new default for RAW DATA.
  • Migration from CouchDB to Couchbase
Main benefit: significantly faster replication of data from the ginstr cloud to the app on the mobile devices
This feature is important for ginstr apps or customers that use the same app or table for users with different languages.
Example: in case an application uses "radio buttons" or some other selection widget which comes with translations it is necessary that those displayed values map to some internal "fixed" value which will be shown in each language differently.
  • Export and import of table data in XML format:
The current version of ginstr web allows importing and exporting data in CSV and in Excel format. This new version adds import and export in XML data format. This extends the possibility to exchange data with 3rd party applications significantly.
  • Renaming of subaccounts:
As it is in current version when the main user creates a subaccount he/she defines the username (i.e. e-mail address) and once the subaccount is created there is no possibility for the main account user to modify the sub account user name (e-mail) but he/she can only delete this subaccount and create a new subaccount with a new username in this case.
This new version allows the main user changing the username of an existing subaccount. A subaccount user cannot change his/her username.
  • Improved quick search functionality of the portlet chooser:
The portlet chooser allows defining which content should be shown in a particular portlet. Users which have to handle a multitude of tables (e.g. because they use use multiple apps each with multiple tables and/or which might have created several individual tables) can search for a specific table in the portlet chooser by entering parts of the table name into the 'quick search' input field.
This new version now also includes ginstr app names into the search so it becomes easier to find the tables of a particular app.
  • Uniqueness validation on columns in different tables:
Sometimes there is a requirement that the same value must not be used in different tables.
Example: a ginstr app uses NFC tags as well for identifying employees as for identifying assets.
In this case it might be desired that an NFC tag used for identifying an employee must not be used for identifying an asset at the same time.
This new version of ginstr web allows defining columns of different tables which must not have duplicate content in any of the cells of these columns.

Plus apps:

  • Use number stored on NFC tag instead of NFC tag id if present

Update 28.12.2016

Previously, ginstr web reports were limited to filtering rows, hiding columns, calculating various subtotals, totals, averages etc.
With the new Advanced Reports feature it is now possible to design literally any report template similar to an Excel report, PowerPoint report or similar including text information, charts like pie charts or bar charts, tables.
Complex aggregation and examination of multiple tables etc. Advanced Reports can then be easily generated for any record(s) in ginstr web and exported in CSV, Excel, PDF or RTF format.
Such reports can be designed according to your wishes, so they could look, for example, like your current invoices, your current work reports for your clients etc.
In current version if you click on a row in a table which is pointed by another table then this dependant table is filtered automatically in case this feature has been activated for this table.
This means, that for example if you click on a customer then all his orders are shown or if you click on a construction machine then all operating hours on all construction sites are shown.
While a pointer always points to exactly one entity (e.g. to one customer or to one construction machine) when using the assignment datatype you can create an m:n relationship.
This means you can for example assign m children in a school to n courses and each child can be a member of none, one or multiple courses.
The filtration for assignment datatype is now available in new version, so now in case you click on one row in a table all assigned items in another table will be filtered.
Example: you click on one child and then all courses will be shown this child is attending. At the same time, if you click on a course then all children will be selected attending this course.
This also works in case you select multiple records at the same time in one table for filtering the other table.
Currently there are two methods for storing data in reports:
  • use pointers
  • copy data from master data
imagine you have an app with following tables:
  • customers - holds master data of all customers
  • products - holds master data of all products
  • orders - holds a report of all orders of all customers
In this case the 'orders' table might consist of the following columns:
  • customer name
  • product name
  • quantity
  • order date
  • etc.
Now imagine a customer's name is Lisa Miller. After a few orders Lisa marries her husband and her new surname is now 'Knight' instead of her maiden name 'Miller'.
This would mean that in case we use a pointer datatype pointing from 'customer name' in 'orders' table to 'customer' in 'customers' table then after changing her last name to 'Knight' also all older orders would show the name 'Knight' but at that time her name was yet 'Miller'.
On the other side, in case we copy (!) her name into table 'orders' then after changing her name and ordering some more products there would be orders with name 'Miller' and orders with name 'Knight' in table 'orders' and the software would not know that this is the same person so it would be impossible to find all orders of this individual.
In order to overcome this situation the new feature 'allow pointer/assignment datatype to not update value' was implemented. It works as follows:
In case you use a pointer datatype or an assignment datatype for pointing from table 'orders' to table 'customers' then in case the customer changes her name the old name would be shown for the orders executed before her marriage and the new name would be shown for all orders executed after her marriage.
Despite that, when clicking on the customer row in table 'customers' then the filtering of the 'orders' table would show as well the 'Miller' orders as the 'Knight' orders, so no historic information will be lost anymore.
Power users might make extensive use of filtering and selecting records in multiple tables of one workspace for various reports.
In some cases it is pretty time consuming to unselect all previously selected records in all tables on the screen. Therefore the new option "unselect all" has been implemented which allows unselecting all selected records of all tables currently visible on the screen. You can find this option in top right corner of the screen after clicking on your name.
The following existing ginstr apps have been updated to support the recently implemented datatype dateTimeDiff:
This datatype allows creating a column in any table which automatically calculates the time difference between two timestamps present in the same row of a table.
This feature allows, for example, calculating automatically a working time in case a table contains a column with check-in times and a column with check-out times.
All existing data of all users of the above listed apps has been adopted to the new datatype.
The ginstr Plus© apps are those which not only record work done, material loaded etc., but also allow task scheduling with alerts in case scheduled tasks are not executed on time.
Plus© apps exist for various industries including:
Implementation of new 'tours' feature provides much more flexibility regarding the assignment and grouping of scheduled tasks.
Tours allow you to group scheduled tasks in to convenient predefined routes, with each tour consisting of several visits in a predefined sequence. Each visit within a tour is assigned to an NFC tag at the specified work location. When the NFC tag is scanned by the employee, they are shown a screen with one or more services which are presently required at the current work location. When the required services have been carried out, the app informs the employee which work site to visit next. It is easy to define the expected preparation time or travel time between visits in a tour. There is no limit on the number of visits per tour or on the number of tours you can define, and each tour can be easily assigned to different employees and scheduled to begin at regular or irregular start times.
For more information please click on one of the above mentioned apps to view the details in the related user manual.

Update 14.12.2016

The kiosk mode allows to run the ginstr launcher app exclusively on smartphones which are intended to be used exclusively for ginstr apps. The kiosk mode can be activated on each device by long-pressing anywhere on the app login screen and selecting 'kiosk mode' from the resulting context menu. The kiosk mode is password protected and prevents the smartphone from being used for any other apps/functions other than ginstr launcher.
The kiosk mode can also be activated/deactivated remotely by supervisors using remote commands.
  • Enhanced comparator validator for decimal numbers:
    Now it is validated the number of digits on the left side of the decimal point of each entered value against set value for maximum number of digits limit. Before total entered number of digits was validated including the digits on the right side of the decimal point.
  • Performance improvements through improved indexing mechanism:
    Thru improved indexing mechanism the indexing is much faster now and less power consuming.
  • Reduced database size:
    In the ginstr cloud no revision of any records will be deleted for maintaining a fully revision-proof set of data.
    But in the local database on the phones purging of old revisions of database records can improve the speed and user experience significantly. Therefore a reduction of stored revisions has been implemented as follows:
    as database records are updated by the user either on the phone or in ginstr web they will be reduced to 10 revisions per document and will be kept on that amount.

Update 21.11.2016

This was a ginstr launcher update only. The following features have been implemented:

  • questionnaire feature:
ginstr launcher allows now creating apps which can handle lists of items where multiple items can be modified or saved at the same time (i.e. creating a list of employees and modifying the assignment to a department of multiple employees at the same time. When finished with list modifications items can be saved or updated to ginstr web at the same time.
  • dropdown enhancement:
ginstr launcher offers now a possibility to show the content of two textual columns in dropdown display item.
  • maintenance support:
According to Google there are currently over 13,500 different smartphone and tablet models running Android OS. Therefore it is not possible to test the ginstr apps on all existing devices.
This means in return, that in rare cases ginstr apps are not working as intended on certain devices.
ginstr always tries to find the root cause and to implement some solution. In order to do so it is very important for our developers to understand the root cause of the problem.
A very good source of information for finding the root cause is the system log. This is an internal ginstr app feature that allows to write each and every step of a program to a file and then later to examine it.
For creating a log file on a failing device and for downloading the file to the computer of the developer for further examination the following remote commands have been implemented; they can be sent to a phone from inside your account; the log file will then arrive in your account and can from there be downloaded to any computer:

Update 03.11.2016

This was a ginstr web update only.

  • Language and time format are now dependent:
    • When changing the language, the time format will also change to the appropriate format.
    • If the user selects a different time format, then this time format will always be used in the future independent of the selected language.
  • The import/export functionality has been improved:
    • It is now possible to import/export tables along with all dependant tables in one step. Dependant tables are tables that are connected to other tables with pointers or assignments.
    • Since long time there is an option to show/hide columns of tables. Now it is possible to choose if exported data will contain the data of hidden columns or not
  • For user created tables (tables not belonging to a ginstr app) the following enhancements have been implemented:
    • It is now possible to change the datatype of a column as long as no data stored in the table. This makes it more convenient to create tables and to edit their structure.
    • It is now possible to delete user created tables
    • It is now possible to select the horizontal position of the content of columns with assignment datatype
  • The documents datatype has been improved. It is now possible to upload the following file formats:
    • pdf
    • xlsx
    • xls
    • csv
    • docx
    • doc
    • pptx
    • ppt
  • The 'setup' screen of ginstr web has a new section "GENERAL INFORMATION' which shows some information about relevant components of ginstr web.
  • Users with SUPERVISOR user rights have now the possibility to set a maximum number of rows for each table.

Update 17.10.2016

This was a ginstr launcher update only. This is mainly a maintenance release for fixing various bugs.

The following feature has newly been implemented in this ginstr web release:

  • Support of different styles:
This allows the developer of apps to adopt existing apps easily to different colours, layouts etc. without the necessity to clone the app. This will reduce the amount of maintenance work for such apps significantly.

Update 07.10.2016

This was a ginstr web update only. The following new features are newly implemented in this ginstr web release:

  • Possibility for the main user to set in SSO main user account the amount of rows to be displayed in ginstr tables before the big data filter is applied on the table;
Default value is 10,000 rows but some browsers and/or computers depending on available memory, type of browser etc. allow many more rows to be displayed at the same time in the browser;
the rows of all tables shown in a work space are adding to the memory consumption.
  • Possibility to either download pictures or to open them full size in a new tab and to drag them from there to the desktop or to any other application.

Update 01.09.2016

This was a ginstr launcher update only. The following features have been implemented:

This allows our support team tracking down issues experienced on single smartphones as well as on groups of smartphones.
For now such commands are only available for our support team. We have plans to provide several commands for our customers in the next period of time.
  • Names of taken images, audios, videos on device now when saved to the database have names identical like on backend.
As a backup location in case media files would get deleted on backend its possible to retrieve them from the smartphones and associate them (again) with records
  • Support of new datatype dateTimeDiff
    This datatype can be used to calculate the difference between two time stamps which is useful for example for calculating the working time by deducting the end time from start time.
In ginstr web this means that such calculation is updated as soon as either the start time or the end time is updated manually or through a ginstr app.
  • The automatic database cleanup process has been improved which reduces the space used by the database on Android device.

Update 12.08.2016

This was a ginstr web update only. The following new features are newly implemented in this ginstr web release:

in case you do not want to to chat with the ginstr team through the ginstr web support chat, you can disable the popup window on ginstr web;
the support chat is a very convenient, fast and free way to get in contact with one of the ginstr consultants in case you have a question
  • Natural table names are displayed in SSO:
this makes it more convenient for you to identify each table.
  • 'Today' filter is not pre-set anymore for filters of date and dateTime datatype but can be set by the user like any other filter;
In case the user changes one of the two columns then the dateTimeDiff value will be re-calculated instantly.
The time difference is shown in decimal hours (1 hour = 100 units)
  • New improved export/import dialog
  • More flexible pointers to 'Customers' table in all Plus© apps:
customers can now be assigned to level-1, level-2 and level-3 entities.
Example for the cleaning app:
so far customers have been assigned to properties. This makes no sense in case the cleaning company has contracts with different companies renting office space in the same property. Now it is possible to assign customers not only to properties but also to cleaning zones or even to single rooms.
  • Optimisation of the amount of messages that appear in table system: data import errors
  • Extended implementation of permissions:
there is a new feature now that allows the main user to configure for sub accounts if they can log in to ginstr web or only to some ginstr apps
  • For better remote support a set of features has been implemented that allows ginstr experts to send remote commands from ginstr web to a phone running a ginstr app to execute some command, e.g. produce and download a log file, force ginstr launcher update, force database rebuild etc.
  • Enhanced replication mechanism avoids unnecessary replication of data from the ginstr cloud to the phones. This reduces SIM card airtime costs as well as the time required to sync the database after logging in.

Update 08.07.2016

This was a ginstr launcher update only. The following features have been implemented:

ginstr apps can now read iBeacons and can execute actions based on that.
if a smartphone of a bus driver recognises the iBeacon mounted to a bus stop then the name of the bus stop can be pulled from the database based on the unique iBeacon ID and can be shown or further used in the ginstr app.
  • The ginstr servers can now force smartphones to drop old data on a phone and to renew it by replicating it from scratch to the phone.
This allows to recover e.g. from a corrupt database on a phone automatically.
  • Various speed enhancements for the ginstr launcher:
- asynchronous loading of layouts
- database pre-initialization
- direct access and execution of widget xml methods/attributes
- optimised login process
- modified initial replication mechanism to include start indexing execution
- initial indexing for all database views
  • Images are now compressed to a size of near to 100kB to reduce the amount of data that must be transmitted;
in case you would like to store bigger pictures then please contact your ginstr representative.
  • Shortcuts on the home screen are now generated depending on the selected language
  • Various enhancements for optimised automated testing
  • Bug fixes

Update 27.05.2016

  • For most apps backend table headlines are now translated into English, French, German, Spanish;
    for the other apps this can be done pretty fast if required.
  • All apps have at least English and German translation, most have now Arabic, English, French, German and Spanish translations
  • It is possible now to define in each ginstr app if some column of a table should be visible in the backend or if it should be hidden
  • It is possible now to configure "replication definitions" in each app for
    • pictures
    • audio
    • video
    • documents
    • signatures

This reduces the amount of data replicated between the servers and the mobile devices significantly in case such data is not required on each mobile device.

  • It is possible now to configure in each ginstr app if clicking on some records in a table with pointers should filter dependent tables automatically; by default this feature is enabled
  • It is possible to define default order of columns for app tables
  • Big data handling:
Modern browsers like Google Chrome or Firefox still have limitations regarding the amount of data they can handle at the same time. In case too much data is loaded into a browser their execution gets very slow or can even stop them completely.
In order to avoid such situation, a time period filter has been implemented which is activated automatically in case a ginstr table contains more than 10,000 records. In this case only a maximum of 10,000 records are loaded based on a time period selected by the user. Basis for record selection is the record creation date and time.
For setting this time period a new filter icon.png icon appears in the top right corner of a portlet in case the portlet contains a table with more than 10,000 records.
Totals and sub-totals in reports in this case are calculated for the selected time period.
There are different options now to select the data to be exported:
  • Export all records independent of any selected time period in the time period filter settings
  • Export all visible data
  • Improvement of data export to Excel file format:
Excel 'number' and Excel 'date' formats are now supported
  • Assignments to columns shows the number of the row to which the record refers instead of the cell content
  • User locale has been added to exported file name
  • Filters that are applied on tables stay applied after reloading ginstr web
  • An error message is displayed in case the user tries to delete a record that is pointed by another record
  • It is possible now to remove a previously uploaded customer logo from ginstr web
  • Bug fixes

Update 10.02.2016

  • Besides data import/export from/to CSV files now also data import/export from/to Excel .xlsx files is available
  • Table and column names are now automatically adapted to the language selected by the user in case such translations have been specified in the related ginstr app
  • New generic portlet content: 'edit record details':
this feature is very helpful for editing records of tables with many columns: all columns are presented BELOW each other similar to a paper form; editing of the data works exactly the same way like editing the data in a horizontal line of the table grid.
  • Support of Arabic language
  • Support of Spanish language
  • The sequence of the tabs of a table can be rearranged by dragging and dropping each tab
  • Help text has been added in three places in top right corner:
1) in each portlet with a table: this help text explains all important table edit features
2) in table report edit screen: this help text explains how to configure one or multiple reports per table
3) edit record details screen
The help window can be dragged around to any position on the screen
  • Improved status reports for reports waiting to be generated in the report generation waiting queue
  • Advanced supervisor functionality related to removing tables and applications
  • Bug fixes