AskiaDesign 5.4.6 releases brand new customisation templating capabilities thanks to the introduction of the Askia Design Pages system (ADP), and a modern screen testing system called Jupiter. We've also added a bunch of automation features, check them out!
Refresh of the app UI
New icons used by the application to better reflect their associated actions
ADCs are now grouped by question type so you don't have to wonder whether a specific ADC will be compatible with a specific question type . . .
It means one control can appear on several nodes, based on the definition of the control in the config.xml file. Note: The control with an icon with green arrow means it requires a parent loop to be used.
Interactive Library: When copying and pasting questions - or dropping questions in via the library, a wizard can be offered to customise the question texts, responses, routings and resources you are adding.
Freeze entry codes
A new option "Freeze entry codes" is now available in the right click contextual menu of the tree view. It applies to the selected variables.
“Jupiter” – Server Emulation: you now have an option to preview your survey as if it was on the server, straight from Design. Not only does it launch into a browser, you can paste that URL into any browser on your device, or even send it to a colleague who is on the same network so they can preview the survey.
The Internet Explorer Preview option also uses Jupiter, so you can now see all test interviews done in that session (including the interviews done using the Jupiter link) and because they are all being run from Jupiter, it's possible to switch into any Interview that was started from any device, and debug it.
Askia Design Pages (ADP)
Only for web surveys for now
You can add an ADP as a resource (as you would do with an ADC), and control the properties from within Design. Via the Internet Options which have been redesigned to support ADP properties.
We added a fix list of theme properties. These properties can be used on ADC and ADP. The theme properties can be changed for the entire survey or on a specific page.
Global directory on network for ADCs
We have added a parameter in the settings of design to define the directory where the ADC and ADP are stored.
Show extended properties for ADC/ADP
We have added a parameter in the settings of design to define if the non visible ADC/ADP parameters should be shown in the interface of design or not.
Persistence of tree state between modes
When changing mode (from question mode to screen mode for instance), the tree is kept in the same state (collapsed and selected items) which facilitates finding where one is when changing mode often. Further to this, the current screen will be selected when you move into screen mode, or stop debugging a script. Simple things that help speed up your work.
New Global keywords:
- CurrentADP: Return the current running ADC instance.
- CurrentQuestions: Return an array of the all the questions available in a screen.
- Theme: Return the current theme.
- While: Repeat a piece of code while a given expression is
New Variant basic type methods:
- ToNumber(): Converts whatever value inside the variant to a number.
- ToString(): Converts whatever value inside the variant to a string.
- ToDate(): Converts whatever value inside the variant to a date.
- InnerTypeOf(): Return the type of the basic value hold by the variant.
- TypeOf(): Always return "variant" as string.
New Question Object properties:
- HasParentChapter: Check whether the question has a parent chapter. Returns a Boolean.
- ParentChapter: Will return a string containing name of the Parent chapter.
- Errors: Errors property to store all errors. Returns an Array.
- InputCode: Indicates the input code - actually the position of the question in the masque.
New Interview Object properties and methods:
- AgentID: Identifier of the interviewing Agent.
- AgentName: Name of the interviewing Agent.
- CallID: Returns a Call ID of the current interview.
- Duration(): Return the time spent on a question or duration taken to get from one question to another.
- EndTime: Indicates the finished date/time of the current interview (eg. EndInterview).
- EndTimeUTC: Indicates the finished UTC date/time of the current interview (eg. EndInterview).
- GetFaceOS(): Returns the OS that the Face interview was conducted on.
- Id: Returns the Id of the current interview (eg. IntvwId).
- IsFace: Indicates if the current Interviewing mode is face (returns Boolean).
- IsFirstPage: Indicates if you are on the first page (returns Boolean).
- IsLastPage: Indicates if you are on the last page (returns Boolean).
- IsTest: Indicates if the current Interviewing mode is in Test or brief (returns Boolean).
- IsVoice: Indicates if the current Interviewing mode is voice (returns Boolean).
- IsWeb: Indicates if the current Interviewing mode is web (returns Boolean).
- Language: Returns the current respondent language.
- ListID: Returns the identifier of the respondent list (returns Number).
- Scenario: Returns the current respondent scenario.
- StartTime: Indicates the started date/time of the current interview (eg. StartInterview).
- StartTimeUTC: Indicates the started UTC date/time of the current interview (eg. StartInterview).
New Language Object properties and methods:
- ID: returns the LCID of the language.
- Abbr: returns the 3-letter abbreviation of the language.
- Name: returns the name of the language.
- DateFormat: returns the date format used for the language.
- DecimalSeparator: returns the decimal separator used for the language.
- ThousandSeparator: returns the thousands separator used for the language.
- ToString(): return a string to represent the language object (JSON format).
- TypeOf(): Always returns “language”.
In addition to these we also have a few new methods for string variables. These are:
- Collate(): Compare two strings whilst taking accents and character case into account.
- CollateAny(): Compare one string against an array of string whilst taking accents and character case into account.
- DLdistance(): Returns the number of spelling differences between two strings (in a clever way - an inversion of two characters will be understood as one spelling mistake) using the Damerau-Levenshtein Distance.
Functions: extending Askia Scripts
Rather than us adding functions whenever they are needed (which will still happen), we have decided to let users create their own functions. A function is a piece of code that you can call with different parameters and re-use. To read more, see our blog post - http://blog.askia.com/askiadesign/of-askia-scripts-and-functions/.
Option to store resources independently to the QEX file, and reference them via a URL.