SurveyJSON was storing a lot of redundant information (every setting on
every single section/question/answer, which, in most cases, will simply
take on the default values). This was bloating the surveyJSON property in
the db, and equally as importantly, slowing down Survey because it had to
do a lot of JSON parsing on the serialised surveyJSON object.
We now factor out and store the current section/question/answer defaults
along with the surveyJSON data itself, which means that we only needs to
store properties that differ from the defaults. This results is a massive
reduction in the size of the serialized surveyJSON stored in the database,
as well as a speed-up in json parsing time.
The compression/uncompression happens transparently to the rest of Survey.
Fixed bugs in the handling of logical sections,
creating of responses and counting of responses.
Added in a bunch of new tests.
Jslinting of all survye js files
Added useText option to responseValuesByVariableName so that it can be
used for both branch expressions and [[var]] text substitution correctly
Added extra verbatim handling to [[var]] text substitution
All survey test now pass, except for one involving True/False
multi-chocie bundle, soon to be fixed by updating bundle
* master: (121 commits)
Fix a POD typo.
correct inbox message from user preface
Fix a typo in the Default gallery view template
Documentation bug in buildArrayRefOfHashRefs
changed screenshots in Matrix Listing view to popup
matrix privileging fixes
Fix an i18n typo in the Post user defined variables.
Remove debugging code.
approval workflow fix
matrix upgrade and privileging fixes
fixed: Template parser cannot be set
forward porting gallery bug fixes
preparing for 7.7.0 dev
parser should be a selectbox, not a selectlist.
labeling survey as beta
fixeding my borkes to the changelog
fixed#9852: Users can accept private messages from Visitor, but Visitor cannot send messages
preparing for 7.6.14 release
fix AdSpace, Ad tests
Restore the original properties for the profile category that was modified for test.
...
Conflicts:
docs/gotcha.txt
docs/upgrades/upgrade_7.6.10-7.6.11.pl
lib/WebGUI/Asset/Wobject/Survey.pm
lib/WebGUI/Asset/Wobject/Survey/SurveyJSON.pm
Added Params::Validate to ResponseJSON.pm
Refactored ResponseJSON constructor and re-ordered params for
consistency
Added new ->session accessor
Updates tests
Removed unnecessary logging methods
Further refactored SurveyJSON, gave private variables underscores,
replaced direct hash access with accessors