From wiki.ginstr.com
Jump to: navigation, search
m (Update 03.11.2016)
m
Line 3: Line 3:
  
 
This wiki page lists all important new features of each update
 
This wiki page lists all important new features of each update
 
  
 
==Features of the upcoming release==
 
==Features of the upcoming release==
  
ginstr web:
+
<span id="upcoming_release_ginstr_web" STYLE="font-size: large">ginstr web:</span>
  
* ginstr reports:<br>so far ginstr reports were limited to filtering rows, hiding columns,, calculating various subtotals, totals, averages etc.
+
* '''ginstr reports''':<br>
 +
::so far ginstr reports were limited to filtering rows, hiding columns, calculating various subtotals, totals, averages etc.
  
* ginstr reports scheduler:<br>Along with new ginstr reports functionality the ginstr reports scheduler has been implemented.<br>It allows scheduling reports and then creating and sending them at defined times aby e-mail to predefined recipients.<br>With new ginstr report feature it is now possible to design literally any report verify 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.
+
* '''ginstr reports scheduler''':<br>
 +
::Along with new ginstr reports functionality the ginstr reports scheduler has been implemented.<br>It allows scheduling reports and then creating and sending them at defined times aby e-mail to predefined recipients.<br>With new ginstr report feature it is now possible to design literally any report verify 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.
  
* "filter on parent selection" for assignment datatype:<br>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.<br>This means, that for ex. 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.<br>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.<br>This means you can for ex. assign m children in a school to n courses and each child can be a member of none, one or multiple courses.<br>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.<br>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.<br>This also works in case you select multiple records at the same time in one table for filtering the other table.
+
* '''"filter on parent selection"''' for <code>[[Datatypes#assignment|assignment]]</code> [[Datatypes|datatype]]:<br>
 +
::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.<br>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.<br>While a <code>[[Datatypes#pointer|pointer]]</code> always points to exactly one entity (e.g. to one customer or to one construction machine) when using the <code>[[Datatypes#assignment|assignment]]</code> [[Datatypes|datatype]] you can create an m:n relationship.<br>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.<br>The filtration for <code>[[Datatypes#assignment|assignment]]</code> [[Datatypes|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.<br>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.<br>This also works in case you select multiple records at the same time in one table for filtering the other table.
  
* Allow pointer/assignment datatype to not update value:<br>Currently there are two ways how to store data in reports:<br>- use pointers or<br>- copy data from master data<br>Example:<br>imagine you have an app with following tables:<br>- customers: holds master data of all customers<br>- products: holds master data of all products<br>- orders: holds a report of all orders of all customers<br>In this case the 'orders' table might consist of the following columns:<br>- customer name<br>- product name<br>- quantity<br>- order date<br>- etc.<br>Now imagine customer is Lisa Miller. After a few orders Lisa marries her husband and her new name is now 'Knight' instead of her maiden name 'Miller'.<br>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'.<br>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.<br>In order to overcome this situation the new feature 'allow pointer/assignment datatype to not update value' was implemented. It works as follows:<br>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.<br>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.<br>
+
* '''Allow <code>[[Datatypes#pointer|pointer]]</code>/<code>[[Datatypes#assignment|assignment]]</code> [[Datatypes|datatype]] to not update value''':<br>
 +
::Currently there are two ways how to store data in reports:<br>
 +
:::* use pointers<br>
 +
:::* copy data from master data<br>
 +
::'''Example''':<br>
 +
:::imagine you have an app with following tables:<br>
 +
:::* '''customers''': holds master data of all customers
 +
:::* '''products''': holds master data of all products
 +
:::* '''orders''': holds a report of all orders of all customers<br>
 +
:::In this case the ''''orders'''' table might consist of the following columns:
 +
::::* customer name<br>
 +
::::* product name<br>
 +
::::* quantity<br>
 +
::::* order date<br>
 +
::::* etc.<br>
 +
:::Now imagine customer is Lisa Miller. After a few orders Lisa marries her husband and her new name is now 'Knight' instead of her maiden name 'Miller'.<br>This would mean that in case we use a <code>[[Datatypes#pointer|pointer]]</code> [[Datatypes|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'.<br>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.<br>In order to overcome this situation the new feature ''''allow <code>[[Datatypes#pointer|pointer]]</code>/<code>[[Datatypes#assignment|assignment]]</code> [[Datatypes|datatype]] to not update value'''' was implemented. It works as follows:<br>In case you use a <code>[[Datatypes#pointer|pointer]]</code> [[Datatypes|datatype]] or an <code>[[Datatypes#assignment|assignment]]</code> [[Datatypes|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.<br>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.<br>
  
* New feature "unselect all" in ginstr web menu<br>Power users might make extensive use of filtering and selecting records in multiple tables of one workspace for various reports.<br>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.<br>
+
* New feature '''"unselect all"''' in [[ginstr web]] menu:<br>
 +
::Power users might make extensive use of filtering and selecting records in multiple tables of one workspace for various reports.<br>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.<br>
  
* PLUS apps: support of 'tours'
+
* '''Update of apps with <code>[[Datatypes#dateTimeDiff|dateTimeDiff]]</code> [[Datatypes|datatype]]'''<br>
 +
::Following existing ginstr apps have been updated to support the recently implemented [[Datatypes|datatype]] <code>[[Datatypes#dateTimeDiff|dateTimeDiff]]</code>:<br>- caregiverChecklist<br>- timeRecording<br>- timeRecordingEquipmentManagerGLC<br>- CCGtoiletCleaningReport<br>- busTransportationReport<br>- caregiverChecklistGeneric<br>- chemicalPlantAttendance<br>- miningSiteAttendance<br>- labourTimePerLocation<br>- shuttleServiceManager<br>- toiletCleaningChecklist<br>- toiletCleaningReport<br><br>This [[Datatypes|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.<br>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.<br>All existing data of all users of the above listed apps has been adopted to the new [[Datatypes|datatype]].
  
* Update of apps with date-time-difference datatype<br>Following existing ginstr apps have been updated to support the recently implemented datatype date-time-difference:<br>- caregiverChecklist<br>- timeRecording<br>- timeRecordingEquipmentManagerGLC<br>- CCGtoiletCleaningReport<br>- busTransportationReport<br>- caregiverChecklistGeneric<br>- chemicalPlantAttendance<br>- miningSiteAttendance<br>- labourTimePerLocation<br>- shuttleServiceManage<br>- toiletCleaningChecklist<br>- toiletCleaningReport<br><br>This datatype allows creating a column in any table which automatically calculates the time difference between two timestamps being present in the same row of a table.<br>This feature allows for ex. calculating automatically a working time in case a table contains a column with check-in times and a column with check-out times.<br>All existing data of all users of above listed apps has been adopted to the new datatype.
+
* '''PLUS apps: support of 'tours''''
  
ginstr launcher:
+
<span id="upcoming_release_ginstr_launcher" STYLE="font-size: large">ginstr launcher:</span>
  
* Kiosk mode<br>The kiosk mode allows to run the ginstr launcher exclusively on smartphones which are intended to be used exclusively for ginstr apps
+
* <span id="kiosk_mode">'''Kiosk mode'''</span>:<br>
 +
::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|remote commands]].
  
* questionnaire feature:<br>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.
+
* '''questionnaire feature''':<br>
 +
::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:<br>ginstr launcher offers now a possibility to show the content of two textual columns in dropdown display item.<br>Typical use case: ??
+
* '''dropdown enhancement''':<br>
 +
::ginstr launcher offers now a possibility to show the content of two textual columns in dropdown display item.
  
* maintenance support:<br>According to Google currently more than 13,500 different smartphone and tablet models are running Android. Therefore it is not possible to test the ginstr apps on all existing devices.<br>This means in return, that in rare cases ginstr apps are not working as intended on certain devices.<br>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.<br>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.<br>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:
+
* '''maintenance support''':<br>
** enable system log
+
::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.<br>This means in return, that in rare cases ginstr apps are not working as intended on certain devices.<br>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.<br>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.<br>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|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:
** get system log
+
:::* [[Remote_Commands|enable system log]]
** delete system log
+
:::* [[Remote_Commands|get system log]]
** disable system log
+
:::* [[Remote_Commands|delete system log]]
** get device serial number
+
:::* [[Remote_Commands|disable system log]]
 +
:::* [[Remote_Commands|get device serial number]]
  
 
==Update 03.11.2016==
 
==Update 03.11.2016==
  
This was a ginstr web update only.
+
This was a [[ginstr web]] update only.
  
* Language and time format are now dependent: when changing the language, then the time format will also change to appropriate format.<br>If the user selects a different time format, then this time format will always be used in the future independent of the selected language.
+
* 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:  
 
* The import/export functionality has been improved:  
Line 49: Line 74:
  
 
* For user created tables (tables not belonging to a ginstr app) the following enhancements have been implemented:
 
* 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 change the [[Datatypes|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 delete user created tables
** It is now possible to select the horizontal position of the content of columns with 'assignment' datatype
+
** It is now possible to select the horizontal position of the content of columns with <code>[[Datatypes#assignment|assignment]]</code> [[Datatypes|datatype]]
  
* The 'document' datatype has been improved. It is now possible to upload the following file formats:
+
* The <code>[[Datatypes#document|document]]</code> [[Datatypes|datatype]] has been improved. It is now possible to upload the following file formats:
 
** pdf
 
** pdf
 
** xlsx
 
** xlsx
Line 63: Line 88:
 
** ppt
 
** ppt
  
* The 'setup' screen of ginstr web has a new section "GENERAL INFORMATION' which shows some information about relevant components of ginstr web.
+
* 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.
+
* Users with <code>[[SSO_supervisor_specific_content|SUPERVISOR]]</code> user rights have now the possibility to set a maximum number of rows for each table.
  
 
==Update 17.10.2016==
 
==Update 17.10.2016==
Line 72: Line 97:
 
This is mainly a maintenance release for fixing various bugs.
 
This is mainly a maintenance release for fixing various bugs.
  
The following feature has newly been implemented in this ginstr web release:
+
The following feature has newly been implemented in this [[ginstr web]] release:
  
* Support of different styles:<br>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.
+
* Support of different styles:<br>
 +
::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==
 
==Update 07.10.2016==
  
This was a ginstr web update only.
+
This was a [[ginstr web]] update only.
The following new features are newly implemented in this ginstr web release:
+
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;<br>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;<br> the rows of all tables shown in a work space are adding to the memory consumption.
+
* 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;<br>
 +
::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;<br> the rows of all tables shown in a work space are adding to the memory consumption.
  
* In table edit mode for 'assignment' data type and for and 'pointer' data type the list of tables is now grouped based on application names
+
* In table edit mode for <code>[[Datatypes#assignment|assignment]]</code> [[Datatypes|datatype]] and for and <code>[[Datatypes#pointer|pointer]]</code> [[Datatypes|datatype]] the list of tables is now grouped based on application names
  
* Possibility to either download pictures or to open them full size in a new tab and to drag them form there to the desktop or to any other application.
+
* 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==
 
==Update 01.09.2016==
Line 92: Line 119:
 
The following features have been implemented:
 
The following features have been implemented:
  
* Remote commands<br>The ginstr launcher now accepts commands coming from ginstr web. As a first step the following commands have been implemented:
+
* '''[[Remote_Commands|remote commands]]'''<br>The ginstr launcher now accepts commands coming from [[ginstr web]]. As a first step the following commands have been implemented:
** update launcher to latest version
+
** [[Remote_Commands|update launcher to latest version]]
** send SMS
+
** [[Remote_Commands|send SMS]]
 
:This allows our support team tracking down issues experienced on single smartphones as well as on groups of smartphones.<br>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.
 
:This allows our support team tracking down issues experienced on single smartphones as well as on groups of smartphones.<br>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.<br>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
+
* Names of taken images, audios, videos on device now when saved to the database have names identical like on backend.<br>
 +
::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 'dateTimeDifference'<br>This datatype can be used to calculate the difference between two time stamps which is useful for ex. for calculating the working time by deducting the end time from start time.<br>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 thru a ginstr app.
+
* Support of new [[Datatypes|datatype]] <code>[[Datatypes#dateTimeDiff|dateTimeDiff]]</code><br>This [[Datatypes|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.<br>
 +
::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.
 
* The automatic database cleanup process has been improved which reduces the space used by the database on Android device.
Line 105: Line 134:
 
==Update 12.08.2016==
 
==Update 12.08.2016==
  
This was a ginstr web update only.
+
This was a [[ginstr web]] update only.
The following new features are newly implemented in this ginstr web release:
+
The following new features are newly implemented in this [[ginstr web]] release:
  
* Updated list of time zones in ginstr web settings
+
* Updated list of time zones in [[ginstr web]] settings
  
* Possibility to disable support chat:<br>in case you do not want to to chat with ginstr team thru the ginstr web chat you can disable the popup window on ginstr web;<br>the web 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
+
* Possibility to [[SSO_common_content#disable_chat_support|disable]] [[SSO_common_content#ginstr_Support_Chat|support chat]]:<br>
 +
::in case you do not want to to chat with ginstr team through the ginstr web [[SSO_common_content#ginstr_Support_Chat|support chat]], you can [[SSO_common_content#disable_chat_support|disable]] the popup window on [[ginstr web]];<br>the [[SSO_common_content#ginstr_Support_Chat|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.
+
* Natural table names are displayed in SSO:<br>
 +
::this makes it more convenient for you to identify each table.
  
* 'Today' filter is not pre-set anymore for filters of 'date' and 'date&time' datatype but can be set by the user like any other filter;
+
* 'Today' filter is not pre-set anymore for filters of <code>[[Datatypes#date|date]]</code> and <code>[[Datatypes#dateTime|dateTime]]</code> [[Datatypes|datatype]] but can be set by the user like any other filter;
  
* French language is enabled in SSO and ginstr web as well as on www.ginstr.com
+
* French language is enabled in [[Category:SSO_manual|SSO]] and [[ginstr web]] as well as on [www.ginstr.com]
  
* New datatype 'date&time difference' has been implemented that represents the time difference between two columns of 'date&time' datatype from same table;<br>In case the user changes one of the two columns then the 'date&time difference' value will be re-calculated instantly.<br>The time difference is shown in decimal hours (1 hour = 100 units)
+
* New [[Datatypes|datatype]] <code>[[Datatypes#dateTimeDiff|dateTimeDiff]]</code> has been implemented that represents the time difference between two columns of <code>[[Datatypes#dateTime|dateTime]]</code> [[Datatypes|datatype]] from same table;<br>
 +
::In case the user changes one of the two columns then the <code>[[Datatypes#dateTimeDiff|dateTimeDiff]]</code> value will be re-calculated instantly.<br>The time difference is shown in decimal hours (1 hour = 100 units)
  
 
* New improved export/import dialog
 
* 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.<br>Example for the cleaning app:<br>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.
+
* More flexible pointers to 'Customers' table in all PLUS apps:<br>
 +
::customers can now be assigned to level-1, level-2 and level-3 entities.<br>Example for the cleaning app:<br>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'
+
* Optimisation of the amount of messages that appear in table <code>system: data import errors</code>
  
* 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
+
* Extended implementation of permissions:<br>
 +
::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 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.
+
* For better remote support a set of features has been implemented that allows ginstr experts to send '''[[Remote_Commands|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.
+
* 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==
 
==Update 08.07.2016==
Line 137: Line 171:
 
The following features have been implemented:
 
The following features have been implemented:
  
* iBeacon support: ginstr apps can read iBeacons now and can execute actions based on that.<br>Example:<br>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.
+
* [[iBeacon]] support:<br>
 +
::ginstr apps can now read [[iBeacon|iBeacons]] and can execute actions based on that.<br>Example:<br>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.<br>This allows to recover e.g. from a corrupt database on a phone automatically.
+
* 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.<br>
 +
::This allows to recover e.g. from a corrupt database on a phone automatically.
  
* Various speed enhancements for the ginstr launcher:<br>- asynchronous loading of layouts<br>- database pre-initialization<br>- direct access and execution of widget xml methods/attributes<br>- optimised login process<br>- modified initial replication mechanism to include start indexing execution<br>- initial indexing for all database views
+
* Various speed enhancements for the ginstr launcher:<br>
 +
::- asynchronous loading of layouts<br>
 +
::- database pre-initialization<br>
 +
::- direct access and execution of widget xml methods/attributes<br>
 +
::- optimised login process<br>
 +
::- modified initial replication mechanism to include start indexing execution<br>
 +
::- 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;<br>in case you would like to store bigger pictures then please contact your ginstr representative.
+
* Images are now compressed to a size of near to 100kB to reduce the amount of data that must be transmitted;<br>
 +
::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
 
* Shortcuts on the home screen are now generated depending on the selected language
Line 172: Line 215:
  
 
*The following new ginstr apps have been published on Google Play:
 
*The following new ginstr apps have been published on Google Play:
**Caretaker Report (de/en)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.caretakerReport Caretaker Report] (de/en)
**Electric Meter Cabinet Reading (de/en)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.electricityMeterCabinetReading Electric Meter Cabinet Reading] (de/en)
**Fire Extinguisher Inspection (de/en/es)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.fireExtinguisherInspectionReport Fire Extinguisher Inspection] (de/en/es)
**IT Asset Manager (de/en)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.ItAssetManager IT Asset Manager] (de/en)
**Office Cleaning Report (de/en)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.officeCleaningReport Office Cleaning Report] (de/en)
**Pest Control Inspection Report (ae,de,en)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.pestControlInspectionReport Pest Control Inspection Report] (ae,de,en)
**Shuttle Service Manager (de/en)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.shuttleServiceManager Shuttle Service Manager] (de/en)
**Smoke Detector Inspection (de/en/es/fr)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.smokeDetectorInspection Smoke Detector Inspection] (de/en/es/fr)
**Toilet Cleaning Checklist (de/en)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.toiletCleaningChecklist Toilet Cleaning Checklist] (de/en)
**Window Cleaning Report (de/en)
+
**[https://play.google.com/store/apps/details?id=com.ginstr.windowCleaningReport Window Cleaning Report] (de/en)
  
 
*Various improvements have been implemented for the following ginstr PLUS apps:
 
*Various improvements have been implemented for the following ginstr PLUS apps:
**Avantclean / emma
+
**[https://play.google.com/store/apps/details?id=com.novasoluxions.avantclean.android Avantclean / emma]
**Caregiver Manager Plus
+
**[https://play.google.com/store/apps/details?id=com.ginstr.caregivermanagerplus.android Caregiver Manager Plus]
**Facility Manager Plus
+
**[https://play.google.com/store/apps/details?id=com.ginstr.facilitymanagerplus.android Facility Manager Plus]
**Guard Tour Manager Plus
+
**[https://play.google.com/store/apps/details?id=com.ginstr.guardtourmanagerplus.android Guard Tour Manager Plus]
**Parking Lot Manager Plus
+
**[https://play.google.com/store/apps/details?id=com.ginstr.parkplatzmanager.android Parking Lot Manager Plus]
**Traffic Safety Manager Plus
+
**[https://play.google.com/store/apps/details?id=com.ginstr.trafficsafetymanagerplus.android Traffic Safety Manager Plus]
Some of these apps will only be published in June 2016
 
  
*Big data handling:<br>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 they even stop at all.<br>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 not all records are loaded but max. 10,000 records based on a time period selected by the user. Basis for record selection is the record creation date and time.<br>For setting this time period a new icon appears in the top right corner of a portlet in case the portlet contains a table with more than 10,000 records.<br>Totals and sub-totals in reports in this case are calculated for the selected time period.<br>There are different options now to select the data to be exported:<br>- Export all records independent of any selected time period in the time period filter settings<br>- Export all visible data
+
*Big data handling:<br>
 +
::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.<br>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.<br>For setting this time period a new [[File: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.<br>Totals and sub-totals in reports in this case are calculated for the selected time period.<br>There are different options now to select the data to be exported:<br>- Export all records independent of any selected time period in the time period filter settings<br>- Export all visible data
  
*Improvement of data export to Excel file format:<br>- Excel 'number' and Excel 'date' formats are supported now<br>- Assignments to columns shows the number of the row to which the record refers instead of the cell content<br>- User locale has been added to exported file name
+
*Improvement of data export to Excel file format:<br>
 +
::Excel 'number' and Excel 'date' formats are now supported<br>- Assignments to columns shows the number of the row to which the record refers instead of the cell content<br>- User locale has been added to exported file name
  
*Filters that are applied on tables stay applied after reloading ginstr web
+
*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
 
*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
+
*It is possible now to remove a previously uploaded customer logo from [[ginstr web]]
  
 
*Bug fixes
 
*Bug fixes
Line 210: Line 254:
 
*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
 
*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':<br>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.
+
*New generic portlet content: ''''edit record details'''':<br>
 +
::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 Arabic language
Line 218: Line 263:
 
*The sequence of the tabs of a table can be rearranged by dragging and dropping each tab
 
*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:<br>1) in each portlet with a table: this help text explains all important table edit features<br>2) in table report edit screen: this help text explains how to configure one or multiple reports per table<br>3) edit record details screen<br>The help window can be dragged around to any position on the screen
+
*Help text has been added in three places in top right corner:<br>
 +
::1) in each portlet with a table: this help text explains all important table edit features<br>
 +
::2) in table report edit screen: this help text explains how to configure one or multiple reports per table<br>
 +
::3) edit record details screen<br>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
 
*Improved status reports for reports waiting to be generated in the report generation waiting queue

Revision as of 15:27, 23 November 2016

ginstr web updates

This wiki page lists all important new features of each update

Features of the upcoming release

ginstr web:

  • ginstr reports:
so far ginstr reports were limited to filtering rows, hiding columns, calculating various subtotals, totals, averages etc.
  • ginstr reports scheduler:
Along with new ginstr reports functionality the ginstr reports scheduler has been implemented.
It allows scheduling reports and then creating and sending them at defined times aby e-mail to predefined recipients.
With new ginstr report feature it is now possible to design literally any report verify 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.
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 ways how to store data in reports:
  • use pointers
  • copy data from master data
Example:
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 customer is Lisa Miller. After a few orders Lisa marries her husband and her new name 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.
Following existing ginstr apps have been updated to support the recently implemented datatype dateTimeDiff:
- caregiverChecklist
- timeRecording
- timeRecordingEquipmentManagerGLC
- CCGtoiletCleaningReport
- busTransportationReport
- caregiverChecklistGeneric
- chemicalPlantAttendance
- miningSiteAttendance
- labourTimePerLocation
- shuttleServiceManager
- toiletCleaningChecklist
- toiletCleaningReport

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.
  • PLUS apps: support of 'tours'

ginstr launcher:

  • Kiosk mode:
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.
  • 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 document 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 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;
  • French language is enabled in and ginstr web as well as on [www.ginstr.com]
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.
Example:
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