Cart Buy Licenses Contact Support Login/Register
v 1.8.3

Version: v1.8.4, estimated release date is Tuesday, September 22, 2020, Total Issue Count: 8

Product Type Description
survey-library Enhancement Matrix dynamic/dropdown should take into account survey.storeOthersAsComment property

Currently, columns do not save others and comments with comment postfix: as "columnName-Comment" : columnCommentValue. Matrix cells store comments/others in column value directly. Instead of: {columnName: "other", "columnName-Comment": "valueEnteredIntoOtherInput"} we always have: {columnName: "valueEnteredIntoOtherInput"}, even if survey.storeOthersAsComment equals to true (default value). We have to take into account survey.storeOthersAsComment for matrices. We have to support settings old data format into matrices, since otherwise we could break previous created surveys with old data format.

survey-library Enhancement Show error text on saving results in surveyjs.io service

Show the response from our service on error on saving the survey results. You should set surveyShowDataSaving and surveyPostId, something like this:

survey.surveyShowDataSaving = true;
survey.surveyPostId = "1a81e24f-3a09-4fcc-a915-e76beddf8XXX",

In this case SurveyJS will use our web API to post the survey result into our database and show the progress.

survey-library Bug survey.textUpdateMode = "onTyping" should work for entering number in text question

survey.textUpdateMode = "onTyping" should work for text questions with inputType equals to "text" and "number".

survey-library Bug choicesByUrl doesn't work with {NOCACHE}/{CACHE}

The following JSON simply doesn't work:

              {
                type: "checkbox",
                name: "question1",
                choicesByUrl: {
                  url: "https://restcountries.eu/rest/v2/all{NOCACHE}",
                  valueName: "name",
                },
              },
survey-library Enhancement Refactor matrix question - code duplication and remove pure knockout objects

Remove knockout observable classes and move css code to model classes.

survey-library Bug Modifying matrix value onValueChanging event doesn't change UI

Here is the original issue. The requrement is to select just one row in the matrix. If an user select a cell in another row, then clear the previous row.

This code should does the trick - unselect/remove the previously selected row value.

survey.onValueChanging.add(function(sender, options){
  if(options.name !== "ourMatrixQuestionName") return;
  var keys = [];
  for(var key in options.value) {
      keys.push(key);
  }
  if(keys.length == 2 && !!options.oldValue) {
      for(var key in options.oldValue) {
          delete options.value[key];
          break;
      }
  });

Unfortunately, the row.value in the UI model is not changed and as result UI doesn't react on this value modification.

survey-library Enhancement Highlight unanswered rows in matrix question

Is there a way to highlight unanswered questions in type matrix?

isAllRowRequired just gives an error message but no highlight

survey-creator Bug Missing role="tab" attribute in designer tabs markup

Version: v1.8.4, estimated release date is Tuesday, September 22, 2020, Total Issue Count: 8

Currently, columns do not save others and comments with comment postfix: as "columnName-Comment" : columnCommentValue. Matrix cells store comments/others in column value directly. Instead of: {columnName: "other", "columnName-Comment": "valueEnteredIntoOtherInput"} we always have: {columnName: "valueEnteredIntoOtherInput"}, even if survey.storeOthersAsComment equals to true (default value). We have to take into account survey.storeOthersAsComment for matrices. We have to support settings old data format into matrices, since otherwise we could break previous created surveys with old data format.

Product
survey-library
Type
Enhancement
Description
Show error text on saving results in surveyjs.io service

Show the response from our service on error on saving the survey results. You should set surveyShowDataSaving and surveyPostId, something like this:

survey.surveyShowDataSaving = true;
survey.surveyPostId = "1a81e24f-3a09-4fcc-a915-e76beddf8XXX",

In this case SurveyJS will use our web API to post the survey result into our database and show the progress.

survey.textUpdateMode = "onTyping" should work for text questions with inputType equals to "text" and "number".

Product
survey-library
Type
Bug
Description
choicesByUrl doesn't work with {NOCACHE}/{CACHE}

The following JSON simply doesn't work:

              {
                type: "checkbox",
                name: "question1",
                choicesByUrl: {
                  url: "https://restcountries.eu/rest/v2/all{NOCACHE}",
                  valueName: "name",
                },
              },
Product
survey-library
Type
Enhancement
Description
Refactor matrix question - code duplication and remove pure knockout objects

Remove knockout observable classes and move css code to model classes.

Product
survey-library
Type
Bug
Description
Modifying matrix value onValueChanging event doesn't change UI

Here is the original issue. The requrement is to select just one row in the matrix. If an user select a cell in another row, then clear the previous row.

This code should does the trick - unselect/remove the previously selected row value.

survey.onValueChanging.add(function(sender, options){
  if(options.name !== "ourMatrixQuestionName") return;
  var keys = [];
  for(var key in options.value) {
      keys.push(key);
  }
  if(keys.length == 2 && !!options.oldValue) {
      for(var key in options.oldValue) {
          delete options.value[key];
          break;
      }
  });

Unfortunately, the row.value in the UI model is not changed and as result UI doesn't react on this value modification.

Product
survey-library
Type
Enhancement
Description
Highlight unanswered rows in matrix question

Is there a way to highlight unanswered questions in type matrix?

isAllRowRequired just gives an error message but no highlight

Product
survey-creator
Type
Bug
Description
Missing role="tab" attribute in designer tabs markup

Version: v1.8.3, released at Wednesday, September 16, 2020, Total Issue Count: 15

Product Type Description
survey-library Bug [feature request] radiogroup: radio button with bigger targeted area.

Are you requesting a feature, reporting a bug or asking a question?

feature

What is the current behavior?

clickable only on radio button

What is the expected behavior?

target area should be 'the whole line' of the radio button. even better, highlight the clickable area when hover.

before I use surveyjs, I made this work. probably I can revive it by customise the css. in my opinion, this should be the default behavior?

survey-library Enhancement support strings "{number}.{number}.{number}" for survey.questionStartIndex property

We do not support questionStartIndex with several numbers like "1.2.10". The second question should have number "1.2.11", or "1.2.10." - the second number is "1.2.11." or "(1.2.10)" - the second number is "(1.2.11)".

survey-library Bug Edit buttons in preview mode do not redirect to the correct page/question

#1813 # Are you requesting a feature, reporting a bug or asking a question? Probably a bug

What is the current behavior?

From the preview page (showPreviewBeforeComplete), if you want to edit a question in a survey that have some pages not visible because of some conditions (visibleIf) then your are not redirected to the correct page/question.

What is the expected behavior?

Being redirected to the right page when clicking 'Edit' from the preview page

How would you reproduce the current behavior (if this is a bug)?

  1. Using the json below in Survey Creator
  2. Answer 'No' on page one. This will make the page 'page_not_visible' not visible.
  3. Then continue until the preview.
  4. Click preview. So far all is good.
  5. Click the edit button of the question 'Question visible' to edit your answer.
  6. Problem -> your are not redirected to the right page because page name 'page_not_visible' is not visible.

Provide the test code and the tested page URL (if applicable)

Test code

{
 "pages": [
  {
   "name": "page_one",
   "elements": [
    {
     "type": "boolean",
     "name": "mybool",
     "title": "Answer this question",
     "isRequired": true
    }
   ],
   "title": "First page"
  },
  {
   "name": "page_not_visible",
   "elements": [
    {
     "type": "text",
     "name": "not_visible",
     "title": "Question NOT visible",
     "isRequired": true
    }
   ],
   "visibleIf": "{mybool}  = true",
   "title": "This page should not be visible"
  },
  {
   "name": "page_visible_always",
   "elements": [
    {
     "type": "text",
     "name": "q_visible",
     "title": "Question visible",
     "isRequired": true
    }
   ],
   "title": "This page should always be visible"
  },
  {
   "name": "page_template",
   "elements": [
    {
     "type": "html",
     "name": "start_info",
     "html": "<p>the end</p>"
    }
   ]
  }
 ],
 "showProgressBar": "bottom",
 "showPreviewBeforeComplete": "showAllQuestions"
}

Specify your

  • browser: any
  • browser version: any
  • surveyjs platform (angular or react or jquery or knockout or vue): Vue
  • surveyjs version: 1.7.28
survey-library Bug onLoadChoicesFromServer event is fired ad-infinitum

Are you requesting a feature, reporting a bug or asking a question?

Bug Report

What is the current behavior?

onLoadChoicesFromServer event is fired ad-infinitum when SurveyModel.data is modified in an event handler, the choicesByUrl url is constructed from the value of another question, and a third question unrelated to those two are modified.

What is the expected behavior?

onLoadChoicesFromServer should only be fired when the choices are loaded from the server and not when unrelated questions are modified.

How would you reproduce the current behavior (if this is a bug)?

Minimal repro case:

https://stackblitz.com/edit/surveyjs-bug-5zdops?file=app/surveyjs.component.ts

There are 4 requirements to reproduce:

  1. Add an event handler to onLoadChoicesFromServer
  2. The handler must change the SurveyModel.data
  3. The dropdown question must use choicesByUrl with a url that is templated from another question. In the repro case, it use the value of another dropdown: https://pokeapi.co/api/v2/pokemon?limit={q_limit} where question q_limit define a few numeric values.
  4. A question other than these two must be modified and lose focus to trigger a modification. If you modified 'Limit' it won't happen, just reload the tab and only modify the text field in the repro case.

In the repro case, open the project in a new tab (I highly recommend that because otherwise the editor will become unresponsive) and open the console of your browser. Then, write a value in the question "Text field" and click outside the window.

You will see hundred of console logs from the onLoadChoicesFromServer call. The browser will eventually detect it and terminate the loop but in the case of our more complex application this never stop and create a few important issues.

Specify your

  • browser: Chrome/Firefox
  • browser version: Latest
  • surveyjs platform (angular or react or jquery or knockout or vue): Angular
  • surveyjs version: 1.8.1
survey-library Bug Signature pad: content after delete comes back

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

When dataFormat is set to a value and pressing the delete button, the content is visible after painting again.

What is the expected behavior?

The deleted content should not return.

How would you reproduce the current behavior (if this is a bug)?

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://plnkr.co/edit/v7cCWT9LkRC0C5zE

Specify your

  • browser: Chrome
  • browser version: 85
  • surveyjs platform (angular or react or jquery or knockout or vue): angular
  • surveyjs version: 1.8.2
survey-library Bug The isAnswered property of matrixdynamic is false after setting question's value for T5206

But will be true if call updateIsAnswered for matrixdynamic question

Live sample in plunker

image

survey-library Bug Stackoverflow on JSON with non english locale and firstPageIsStarted equals to true

The following JSON generates stackoverflow:

{
 locale: "de",
 pages: [
  {
   elements: [
    {
     type: "text",
     name: "question10"
    },
    {
     type: "text",
     name: "question11",
     startWithNewLine: false,
    }
   ],
  }],
 firstPageIsStarted: true
}
survey-creator Enhancement Bootstrap material 4 design issues

based on https://surveyjs.answerdesk.io/ticket/details/T5109

work for bootstrap-material 4 and creator integration

survey-creator Bug Condition Property Editor doesn't work when question.valueName equals to {prefix} + question.valueName

For the following JSON, condition property editor will generate incorrect expression for "q2".

{
      elements: [
        { name: "q1", type: "text", valueName: "profile:q1" },
        {
          name: "q2",
          type: "text",
        },
      ],
    }

"visibleIf" property will use {profile:profile:q1} instead of {profile:q1}.

survey-creator Bug Missing role="button" in the title editor adorner

See the T5188 - [Accessibility][Incorrect Control type]Control type of Edit control beside "Input Survey title here" is wrong thread for more details

survey-creator Bug Buttons in the logic rules list don't have role="button" attribute
survey-creator Bug Changing of options.list instance from onConditionQuestionsGetList is ignored for T5191
survey-creator Bug On adding new item in radio group if there is a large number in choices it hangs the browser

If there is a question with the large number choices, then browser hangs on trying to add a new item

    {
     "type": "radiogroup",
     "name": "q2",
     "choices": [
      "12345671234567890",
      "12345671234567891",
      "12345671234567892"
     ]
    }
   ]

The reason, JavaScript failed to increase 12345671234567892 number.

survey-creator Enhancement Change the list of simulator devices

In the list of devices for testing the survey, is it possible to change the list? Add new ones, remove them etc? We'd like to simplify the list and have portrait the default orientation.

The list is a variable here https://github.com/surveyjs/survey-creator/blob/6489166c784bf930e8ee018eaa5df63f0cd815a4/src/components/simulator.ts#L144 and I'm wondering if it can be overridden somewhere.

Thanks!

survey-analytics Enhancement labelTruncateLength property

Implement the property to set the length of the label where the truncation starts. Set to -1 to disable truncate. Default is 27.

var options = {
  labelTruncateLength: 50,
};

var visPanel = new SurveyAnalytics.VisualizationPanel(
  ...
  options
);

Version: v1.8.3, released at Wednesday, September 16, 2020, Total Issue Count: 15

Product
survey-library
Type
Bug
Description
[feature request] radiogroup: radio button with bigger targeted area.

Are you requesting a feature, reporting a bug or asking a question?

feature

What is the current behavior?

clickable only on radio button

What is the expected behavior?

target area should be 'the whole line' of the radio button. even better, highlight the clickable area when hover.

before I use surveyjs, I made this work. probably I can revive it by customise the css. in my opinion, this should be the default behavior?

We do not support questionStartIndex with several numbers like "1.2.10". The second question should have number "1.2.11", or "1.2.10." - the second number is "1.2.11." or "(1.2.10)" - the second number is "(1.2.11)".

#1813 # Are you requesting a feature, reporting a bug or asking a question? Probably a bug

What is the current behavior?

From the preview page (showPreviewBeforeComplete), if you want to edit a question in a survey that have some pages not visible because of some conditions (visibleIf) then your are not redirected to the correct page/question.

What is the expected behavior?

Being redirected to the right page when clicking 'Edit' from the preview page

How would you reproduce the current behavior (if this is a bug)?

  1. Using the json below in Survey Creator
  2. Answer 'No' on page one. This will make the page 'page_not_visible' not visible.
  3. Then continue until the preview.
  4. Click preview. So far all is good.
  5. Click the edit button of the question 'Question visible' to edit your answer.
  6. Problem -> your are not redirected to the right page because page name 'page_not_visible' is not visible.

Provide the test code and the tested page URL (if applicable)

Test code

{
 "pages": [
  {
   "name": "page_one",
   "elements": [
    {
     "type": "boolean",
     "name": "mybool",
     "title": "Answer this question",
     "isRequired": true
    }
   ],
   "title": "First page"
  },
  {
   "name": "page_not_visible",
   "elements": [
    {
     "type": "text",
     "name": "not_visible",
     "title": "Question NOT visible",
     "isRequired": true
    }
   ],
   "visibleIf": "{mybool}  = true",
   "title": "This page should not be visible"
  },
  {
   "name": "page_visible_always",
   "elements": [
    {
     "type": "text",
     "name": "q_visible",
     "title": "Question visible",
     "isRequired": true
    }
   ],
   "title": "This page should always be visible"
  },
  {
   "name": "page_template",
   "elements": [
    {
     "type": "html",
     "name": "start_info",
     "html": "<p>the end</p>"
    }
   ]
  }
 ],
 "showProgressBar": "bottom",
 "showPreviewBeforeComplete": "showAllQuestions"
}

Specify your

  • browser: any
  • browser version: any
  • surveyjs platform (angular or react or jquery or knockout or vue): Vue
  • surveyjs version: 1.7.28
Product
survey-library
Type
Bug
Description
onLoadChoicesFromServer event is fired ad-infinitum

Are you requesting a feature, reporting a bug or asking a question?

Bug Report

What is the current behavior?

onLoadChoicesFromServer event is fired ad-infinitum when SurveyModel.data is modified in an event handler, the choicesByUrl url is constructed from the value of another question, and a third question unrelated to those two are modified.

What is the expected behavior?

onLoadChoicesFromServer should only be fired when the choices are loaded from the server and not when unrelated questions are modified.

How would you reproduce the current behavior (if this is a bug)?

Minimal repro case:

https://stackblitz.com/edit/surveyjs-bug-5zdops?file=app/surveyjs.component.ts

There are 4 requirements to reproduce:

  1. Add an event handler to onLoadChoicesFromServer
  2. The handler must change the SurveyModel.data
  3. The dropdown question must use choicesByUrl with a url that is templated from another question. In the repro case, it use the value of another dropdown: https://pokeapi.co/api/v2/pokemon?limit={q_limit} where question q_limit define a few numeric values.
  4. A question other than these two must be modified and lose focus to trigger a modification. If you modified 'Limit' it won't happen, just reload the tab and only modify the text field in the repro case.

In the repro case, open the project in a new tab (I highly recommend that because otherwise the editor will become unresponsive) and open the console of your browser. Then, write a value in the question "Text field" and click outside the window.

You will see hundred of console logs from the onLoadChoicesFromServer call. The browser will eventually detect it and terminate the loop but in the case of our more complex application this never stop and create a few important issues.

Specify your

  • browser: Chrome/Firefox
  • browser version: Latest
  • surveyjs platform (angular or react or jquery or knockout or vue): Angular
  • surveyjs version: 1.8.1
Product
survey-library
Type
Bug
Description
Signature pad: content after delete comes back

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

When dataFormat is set to a value and pressing the delete button, the content is visible after painting again.

What is the expected behavior?

The deleted content should not return.

How would you reproduce the current behavior (if this is a bug)?

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://plnkr.co/edit/v7cCWT9LkRC0C5zE

Specify your

  • browser: Chrome
  • browser version: 85
  • surveyjs platform (angular or react or jquery or knockout or vue): angular
  • surveyjs version: 1.8.2

But will be true if call updateIsAnswered for matrixdynamic question

Live sample in plunker

image

The following JSON generates stackoverflow:

{
 locale: "de",
 pages: [
  {
   elements: [
    {
     type: "text",
     name: "question10"
    },
    {
     type: "text",
     name: "question11",
     startWithNewLine: false,
    }
   ],
  }],
 firstPageIsStarted: true
}
Product
survey-creator
Type
Enhancement
Description
Bootstrap material 4 design issues

based on https://surveyjs.answerdesk.io/ticket/details/T5109

work for bootstrap-material 4 and creator integration

For the following JSON, condition property editor will generate incorrect expression for "q2".

{
      elements: [
        { name: "q1", type: "text", valueName: "profile:q1" },
        {
          name: "q2",
          type: "text",
        },
      ],
    }

"visibleIf" property will use {profile:profile:q1} instead of {profile:q1}.

Product
survey-creator
Type
Bug
Description
Missing role="button" in the title editor adorner

See the T5188 - [Accessibility][Incorrect Control type]Control type of Edit control beside "Input Survey title here" is wrong thread for more details

Product
survey-creator
Type
Bug
Description
Buttons in the logic rules list don't have role="button" attribute

If there is a question with the large number choices, then browser hangs on trying to add a new item

    {
     "type": "radiogroup",
     "name": "q2",
     "choices": [
      "12345671234567890",
      "12345671234567891",
      "12345671234567892"
     ]
    }
   ]

The reason, JavaScript failed to increase 12345671234567892 number.

Product
survey-creator
Type
Enhancement
Description
Change the list of simulator devices

In the list of devices for testing the survey, is it possible to change the list? Add new ones, remove them etc? We'd like to simplify the list and have portrait the default orientation.

The list is a variable here https://github.com/surveyjs/survey-creator/blob/6489166c784bf930e8ee018eaa5df63f0cd815a4/src/components/simulator.ts#L144 and I'm wondering if it can be overridden somewhere.

Thanks!

Product
survey-analytics
Type
Enhancement
Description
labelTruncateLength property

Implement the property to set the length of the label where the truncation starts. Set to -1 to disable truncate. Default is 27.

var options = {
  labelTruncateLength: 50,
};

var visPanel = new SurveyAnalytics.VisualizationPanel(
  ...
  options
);

Version: v1.8.2, released at Thursday, September 10, 2020, Total Issue Count: 9

Product Type Description
survey-library Bug Pressing markdown link focuses the answer input

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

Pressing on a link inside a question description focuses the answer input.

What is the expected behavior?

Pressing on a link should open the link.

How would you reproduce the current behavior (if this is a bug)?

  1. Use markdown example
  2. Add question description with link
  3. Press link

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://plnkr.co/edit/SzheBTFLcoIqDweV

Specify your

  • browser: Google Chrome
  • browser version: 84
  • surveyjs platform (angular or react or jquery or knockout or vue): angular
  • surveyjs version: 1.7.24
survey-library Enhancement How to center the radio buttons on the matrix

@andrewtelnov

How do I center the radio buttons. Screenshot below:

image

Currently they are left aligned

Are you requesting a feature, reporting a bug or asking a question?

What is the current behavior?

What is the expected behavior?

How would you reproduce the current behavior (if this is a bug)?

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

your_code_here

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue): Angular
  • surveyjs version:
survey-library Enhancement progressBarType should only count visible questions

Are you requesting a feature, reporting a bug or asking a question?

Requesting a feature

What is the current behavior?

  • If progressBarType=pages the progress bar is calculated using only visible pages of the survey.
  • If progressBarType=questions the progress bar is calculated using all questions. If the survey contains invisible questions or the user skipped non-required questions, the progress bar shows 7/9 when the user has actually finished the survey.

What is the expected behavior?

A new option which only uses visible and required questions to calculate the progress bar should be implemented.

  1. Count all visible and required questions
  2. Count all visible and non-required questions that were answered
  3. Add up these numbers. This is the total amount of questions
survey-library Enhancement Optionally disable conversion variable in expression from string to numeric or boolean

In the most case it makes sense to convert string to numeric, if this conversion is doable. In this case expression will work with them as numeric when possible. For example, the expression: " + ", where val1: "1" and val2: "2" will return 3. However, in some cases developers need to have these variables as strings and want to have the result "12". To support both scenarios, we are adding the following '#' variable prefix to disable the conversion. " + " will return 3 and " + " will return "12".

survey-library Enhancement Add "requriedQuestions" option into survey.progressBarType

Allow to show progress for requried questions only. survey.progressBarType = "requiredQuestions";

survey-library Enhancement Optionally execute skip trigger on page next

Add a new option

// Set this property to false to execute the skip trigger on next page instead of on value change.
Survey.settings.executeSkipTriggerOnValueChanged: true,

To change the behavior run this code: Survey.settings.executeSkipTriggerOnValueChanged = false;

survey-creator Bug Can't select correctQuestions progress bar type
  1. Go to https://surveyjs.io/create-survey
  2. Open Navigation section in Survey properties
  3. Select correctQuestions in Progress Bar Type dropdown
  4. ???
  5. Dropdown value is empty

P.S. If select correctQuestions again dropdown value will be correct P.P.S. but seems correctQuestions bar type not works at all

image

survey-creator Bug Toolbox categories not closable
survey-creator Bug tablist bad outline by mouse click

91e12e9d46

Version: v1.8.2, released at Thursday, September 10, 2020, Total Issue Count: 9

Product
survey-library
Type
Bug
Description
Pressing markdown link focuses the answer input

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

Pressing on a link inside a question description focuses the answer input.

What is the expected behavior?

Pressing on a link should open the link.

How would you reproduce the current behavior (if this is a bug)?

  1. Use markdown example
  2. Add question description with link
  3. Press link

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://plnkr.co/edit/SzheBTFLcoIqDweV

Specify your

  • browser: Google Chrome
  • browser version: 84
  • surveyjs platform (angular or react or jquery or knockout or vue): angular
  • surveyjs version: 1.7.24
Product
survey-library
Type
Enhancement
Description
How to center the radio buttons on the matrix

@andrewtelnov

How do I center the radio buttons. Screenshot below:

image

Currently they are left aligned

Are you requesting a feature, reporting a bug or asking a question?

What is the current behavior?

What is the expected behavior?

How would you reproduce the current behavior (if this is a bug)?

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

your_code_here

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue): Angular
  • surveyjs version:
Product
survey-library
Type
Enhancement
Description
progressBarType should only count visible questions

Are you requesting a feature, reporting a bug or asking a question?

Requesting a feature

What is the current behavior?

  • If progressBarType=pages the progress bar is calculated using only visible pages of the survey.
  • If progressBarType=questions the progress bar is calculated using all questions. If the survey contains invisible questions or the user skipped non-required questions, the progress bar shows 7/9 when the user has actually finished the survey.

What is the expected behavior?

A new option which only uses visible and required questions to calculate the progress bar should be implemented.

  1. Count all visible and required questions
  2. Count all visible and non-required questions that were answered
  3. Add up these numbers. This is the total amount of questions

In the most case it makes sense to convert string to numeric, if this conversion is doable. In this case expression will work with them as numeric when possible. For example, the expression: " + ", where val1: "1" and val2: "2" will return 3. However, in some cases developers need to have these variables as strings and want to have the result "12". To support both scenarios, we are adding the following '#' variable prefix to disable the conversion. " + " will return 3 and " + " will return "12".

Product
survey-library
Type
Enhancement
Description
Add "requriedQuestions" option into survey.progressBarType

Allow to show progress for requried questions only. survey.progressBarType = "requiredQuestions";

Product
survey-library
Type
Enhancement
Description
Optionally execute skip trigger on page next

Add a new option

// Set this property to false to execute the skip trigger on next page instead of on value change.
Survey.settings.executeSkipTriggerOnValueChanged: true,

To change the behavior run this code: Survey.settings.executeSkipTriggerOnValueChanged = false;

Product
survey-creator
Type
Bug
Description
Can't select correctQuestions progress bar type
  1. Go to https://surveyjs.io/create-survey
  2. Open Navigation section in Survey properties
  3. Select correctQuestions in Progress Bar Type dropdown
  4. ???
  5. Dropdown value is empty

P.S. If select correctQuestions again dropdown value will be correct P.P.S. but seems correctQuestions bar type not works at all

image

Product
survey-creator
Type
Bug
Description
Toolbox categories not closable
Product
survey-creator
Type
Bug
Description
tablist bad outline by mouse click

91e12e9d46

Version: v1.8.1, released at Wednesday, September 9, 2020, Total Issue Count: 16

Product Type Description
survey-library Bug Do not check for errors for non value and read-only questions

We should not check for errors for questions like "html" and "expression".

survey-library Enhancement File question type - reset isUploading to false in case of uploading error

At the current moment the isUploading flag isn't changed to false if uploading callback is called with the error result. This might block the UI or break the further work with this question. We need to reset isUploading to false in case of uploading error.

See the https://surveyjs.answerdesk.io/ticket/details/t5105/upload-keeps-loading-when-upload-actually-failed thread for more details.

survey-library Enhancement Allow to set visibleIndex to questions with hidden title and title numbers (optionally)

By default we do not set visibleIndex for questions with hidden title or title numbers: question.titleLocation = "hidden"; or question.hideNumber = true;. For example, if question2 has hideNumber equals to true then survey renders question titles as: "1. Question 1", "Question 2", "2. Question 3". In some scenarios, developers want to have visibleIndex for question with hidden title and/or hidden numbers and they want survey to render the question titles as: "1. Question 1", "Question 2", "3. Question 3". question2.visibleIndex, in this case, is 1 instead of -1, but question.no is empty string in both cases.

To get this behavior set to true two new settings:

Survey.settings.setQuestionVisibleIndexForHiddenTitle = true;
Survey.settings.setQuestionVisibleIndexForHiddenNumber = true;
survey-library Enhancement Allow to enable/disable caching for choices from webservice by url

Here is the original question: Disable caching getting choices from web services for some specific questions. We introduce and directives that you can add into url. Use this directives to enable/disable caching for this particular url. For example: url: "https://restcountries.eu/rest/v2/all{NOCACHE}".

survey-library Enhancement Add today() function that your can use in expressions

today([value:number]) function returns the current date. It has an optional parameter, a number that will be added as days to the current date. For example: "today()" - will return the current date 0 hours, 0 minutes "today(1)" will return tommorow "today(-1) will return yesterday "today(2) will return after tomorrow and so on.

survey-library Enhancement Allow to use expressions in min/max text question properties

The following JSON becomes valid: { type: "text", name: "arrivalDate", min:"=today(1)"}. End-user could not enter the date less than tomorrow.

survey-library Enhancement Allow to use expression in defaultValue

The following JSON becomes valid: { type: "text", name: "arrivalDate", defaultValue:"=today(1)"}. The default value will be tomorrow.

survey-library Enhancement Allow to change data format of signature pad image

See the https://surveyjs.answerdesk.io/ticket/details/t5143/signature-widget-blob-format thread for more details.

Added the dataFormat property:

  /**
   * Use it to set the specific dataFormat for the signature pad image data.
   * formats: undefined (default) - png, "image/jpeg" - jpeg, "image/svg+xml" - svg
   */
  public get dataFormat(): string {
    return this.getPropertyValue("dataFormat", undefined);
  }
  public set dataFormat(val: string) {
    this.setPropertyValue("dataFormat", val);
  }
survey-library Enhancement Add onProgressText event

Allow developers to set any text into progress bar.

  /**
   * Use this event to change the progress text in code.
   * <br/> `sender` - the survey object that fires the event.
   * <br/> `options.text` - a progress text, that SurveyJS will render in progress bar.
   * <br/> `options.questionCount` - a number of questions that have input(s). We do not count html or expression questions
   * <br/> `options.answeredQuestionCount` - a number of questions that have input(s) and an user has answered.
   *  @see progressBarType
   */
  public onProgressText: Event<
    (sender: SurveyModel, options: any) => any,
    any
  > = new Event<(sender: SurveyModel, options: any) => any, any>();

Example of showing % of answered questions:

  survey.onProgressText.add((sender: SurveyModel, options: any) => {
    questionCount = options.questionCount;
    answeredQuestionCount = options.answeredQuestionCount;
    options.text =
      "Answered: " +
      (100 * options.answeredQuestionCount) / options.questionCount +
      "%";
  });
survey-creator Bug when page moved , the setModified of type "PAGE_MOVED" has not excute

when page moved , the setModified of type "PAGE_MOVED" has not excute

survey-creator Enhancement Introduce file property editor

It will allow to pick files directly from the property grid and eliminate creator unresponsibility if base64 encoded images are stored in survey JSON.

See the https://surveyjs.answerdesk.io/ticket/details/t5019/upload-file-change-no-file-chosen-text https://surveyjs.answerdesk.io/ticket/details/t5113/survey-logo-makes-app-freeze threads for more details

survey-creator Enhancement Add event to create your own editor for Translation Item

Creator uses text area for editing translation item (string in a particular locale). The following event will allow to use your own editor:

/**
   * The method is called on after render translation item. You can modify the html element using this event
   * <br/> options.item - translation item
   * <br/> options.htmlElement - text area for editing
   * <br/> options.locale - the name of the editing locale
   * <br/> options.onDestroyCallback - a function callback that is called on remove htmlElement from DOM.
   * @see translation
   * @see showTranslationTab
   */
  public onTranslateItemAfterRender: Survey.Event<
    (sender: SurveyCreator, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyCreator, options: any) => any, any>();

Example:

      creator.onTranslateItemAfterRender.add(function (sender, options) {
       //get the text area
        var textArea = options.htmlElement;
       //modify the current locale
        var locale = options.locale;
        //options.item.setLocText(options.locale, newText); //modify the item for the current locale, you can use on event.
        options.onDestroyCallback = function () {
             //Un-initialize events/DOM elements on removing textArea from the DOM
        };
      });

survey-creator Bug Select2 doesn't work in object selector
survey-analytics Bug Make Vizualization Panel's showHeader "true" by default

It should be true by default because if it false we can hide vizualizer but can't show it.

survey-analytics Bug Vizualization panel's onStateChanged event calls before drag release
survey-analytics Bug Wordcloud canvas ctx.getImageData running out of memory

Version: v1.8.1, released at Wednesday, September 9, 2020, Total Issue Count: 16

Product
survey-library
Type
Bug
Description
Do not check for errors for non value and read-only questions

We should not check for errors for questions like "html" and "expression".

Product
survey-library
Type
Enhancement
Description
File question type - reset isUploading to false in case of uploading error

At the current moment the isUploading flag isn't changed to false if uploading callback is called with the error result. This might block the UI or break the further work with this question. We need to reset isUploading to false in case of uploading error.

See the https://surveyjs.answerdesk.io/ticket/details/t5105/upload-keeps-loading-when-upload-actually-failed thread for more details.

By default we do not set visibleIndex for questions with hidden title or title numbers: question.titleLocation = "hidden"; or question.hideNumber = true;. For example, if question2 has hideNumber equals to true then survey renders question titles as: "1. Question 1", "Question 2", "2. Question 3". In some scenarios, developers want to have visibleIndex for question with hidden title and/or hidden numbers and they want survey to render the question titles as: "1. Question 1", "Question 2", "3. Question 3". question2.visibleIndex, in this case, is 1 instead of -1, but question.no is empty string in both cases.

To get this behavior set to true two new settings:

Survey.settings.setQuestionVisibleIndexForHiddenTitle = true;
Survey.settings.setQuestionVisibleIndexForHiddenNumber = true;
Product
survey-library
Type
Enhancement
Description
Allow to enable/disable caching for choices from webservice by url

Here is the original question: Disable caching getting choices from web services for some specific questions. We introduce and directives that you can add into url. Use this directives to enable/disable caching for this particular url. For example: url: "https://restcountries.eu/rest/v2/all{NOCACHE}".

Product
survey-library
Type
Enhancement
Description
Add today() function that your can use in expressions

today([value:number]) function returns the current date. It has an optional parameter, a number that will be added as days to the current date. For example: "today()" - will return the current date 0 hours, 0 minutes "today(1)" will return tommorow "today(-1) will return yesterday "today(2) will return after tomorrow and so on.

Product
survey-library
Type
Enhancement
Description
Allow to use expressions in min/max text question properties

The following JSON becomes valid: { type: "text", name: "arrivalDate", min:"=today(1)"}. End-user could not enter the date less than tomorrow.

Product
survey-library
Type
Enhancement
Description
Allow to use expression in defaultValue

The following JSON becomes valid: { type: "text", name: "arrivalDate", defaultValue:"=today(1)"}. The default value will be tomorrow.

Product
survey-library
Type
Enhancement
Description
Allow to change data format of signature pad image

See the https://surveyjs.answerdesk.io/ticket/details/t5143/signature-widget-blob-format thread for more details.

Added the dataFormat property:

  /**
   * Use it to set the specific dataFormat for the signature pad image data.
   * formats: undefined (default) - png, "image/jpeg" - jpeg, "image/svg+xml" - svg
   */
  public get dataFormat(): string {
    return this.getPropertyValue("dataFormat", undefined);
  }
  public set dataFormat(val: string) {
    this.setPropertyValue("dataFormat", val);
  }
Product
survey-library
Type
Enhancement
Description
Add onProgressText event

Allow developers to set any text into progress bar.

  /**
   * Use this event to change the progress text in code.
   * <br/> `sender` - the survey object that fires the event.
   * <br/> `options.text` - a progress text, that SurveyJS will render in progress bar.
   * <br/> `options.questionCount` - a number of questions that have input(s). We do not count html or expression questions
   * <br/> `options.answeredQuestionCount` - a number of questions that have input(s) and an user has answered.
   *  @see progressBarType
   */
  public onProgressText: Event<
    (sender: SurveyModel, options: any) => any,
    any
  > = new Event<(sender: SurveyModel, options: any) => any, any>();

Example of showing % of answered questions:

  survey.onProgressText.add((sender: SurveyModel, options: any) => {
    questionCount = options.questionCount;
    answeredQuestionCount = options.answeredQuestionCount;
    options.text =
      "Answered: " +
      (100 * options.answeredQuestionCount) / options.questionCount +
      "%";
  });
Product
survey-creator
Type
Bug
Description
when page moved , the setModified of type "PAGE_MOVED" has not excute

when page moved , the setModified of type "PAGE_MOVED" has not excute

Product
survey-creator
Type
Enhancement
Description
Introduce file property editor

It will allow to pick files directly from the property grid and eliminate creator unresponsibility if base64 encoded images are stored in survey JSON.

See the https://surveyjs.answerdesk.io/ticket/details/t5019/upload-file-change-no-file-chosen-text https://surveyjs.answerdesk.io/ticket/details/t5113/survey-logo-makes-app-freeze threads for more details

Product
survey-creator
Type
Enhancement
Description
Add event to create your own editor for Translation Item

Creator uses text area for editing translation item (string in a particular locale). The following event will allow to use your own editor:

/**
   * The method is called on after render translation item. You can modify the html element using this event
   * <br/> options.item - translation item
   * <br/> options.htmlElement - text area for editing
   * <br/> options.locale - the name of the editing locale
   * <br/> options.onDestroyCallback - a function callback that is called on remove htmlElement from DOM.
   * @see translation
   * @see showTranslationTab
   */
  public onTranslateItemAfterRender: Survey.Event<
    (sender: SurveyCreator, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyCreator, options: any) => any, any>();

Example:

      creator.onTranslateItemAfterRender.add(function (sender, options) {
       //get the text area
        var textArea = options.htmlElement;
       //modify the current locale
        var locale = options.locale;
        //options.item.setLocText(options.locale, newText); //modify the item for the current locale, you can use on event.
        options.onDestroyCallback = function () {
             //Un-initialize events/DOM elements on removing textArea from the DOM
        };
      });

Product
survey-creator
Type
Bug
Description
Select2 doesn't work in object selector
Product
survey-analytics
Type
Bug
Description
Make Vizualization Panel's showHeader "true" by default

It should be true by default because if it false we can hide vizualizer but can't show it.

Product
survey-analytics
Type
Bug
Description
Vizualization panel's onStateChanged event calls before drag release
Product
survey-analytics
Type
Bug
Description
Wordcloud canvas ctx.getImageData running out of memory

Version: v1.8.0, released at Thursday, September 3, 2020, Total Issue Count: 11

Product Type Description
survey-library Bug Questions doesn't render correctly if there is a locale key in the end of JSON

The folloing JSON doesn't work:

{
      pages: [
        {
          name: "p01",
          elements: [
            {
              type: "text",
              name: "question2",
            },
          ],
        },
      ],
      locale: "de",
    }

The original issue created as an issue in SurveyJS help desk.

survey-library Bug Width for column in Matrixdynamic does not work when the header is hidden

We set width/min-width attributes for the

row. When it is hidden we do not set the width at all. We have to set it to the elements for the first row.

survey-library BreakingChange readOnlyCommentRenderMode doesn't work
survey-library Bug Comment values are not displayed when storeOthersAsComment=false

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

My goal is to preload data into the survey. When storeOthersAsComment is set to false saving and loading of other is working as expected. But the comment values are not loaded/displayed anymore.

What is the expected behavior?

Values of comment should be displayed when storeOthersAsComment is set to false.

How would you reproduce the current behavior (if this is a bug)?

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://plnkr.co/edit/01lPusQYEIFtxpBb

Specify your

  • browser: Chrome
  • browser version: 84
  • surveyjs platform (angular or react or jquery or knockout or vue): angular
  • surveyjs version: 1.7.26
survey-library Enhancement Allow to disable caching getting choices from web services

In the most cases chaching the choices results from web services is a good idea. However, in some cases developers require to disable this option to get the latest results all the time. The following options has been added into survey settings.

  /**
   * Cache the result for choices getting from web services. Set this property to false, to disable the caching.
   */
  useCachingForChoicesRestfull: true,

Use the following code to disable caching: Survey.settings.useCachingForChoicesRestfull = false;.

survey-library Bug Could not set "undefined" string as a value into a question

Survey converts "undefined" strings on setting question.value into undefined value. It should treat "undefined" string as a string.

survey-creator Bug SurveyCreator readonly not applied properly

Are you requesting a feature, reporting a bug or ask a question?

Reporting a bug

What is the current behavior?

If a new value is assigned to SurveyCreator's readonly property the change is applied only partially in the interface:

  • Fields in the properties pane of the current element remain unchanged - editable or readonly depending on the previous state.
  • Inline editing of the current page's title and description remains unchanged - enabled or disabled depending on the previous state.
  • Inline editing of the Survey's title and description remains unchanged - enabled or disabled depending on the previous state, Once disabled it cannot be enabled anymore.

To see the interface reflect the new setting (enabled or disabled) the user must select a different element (i.e. select a different Page). Then the fields become editable or readonly as expected depending on the value of the setting.

What is the expected behavior?

When readonly is set to false all editing must become enabled, also for the currently selected element. When readonly is set to true all editing must became disabled.

How would you reproduce the current behavior (if this is a bug)?

Change the value of readonly and observe that the interface doesn't reflect the change.

Provide the test code and the tested page URL (if applicable)

Test code surveyCreator.readonly = true; // editing must become disabled surveyCreator.readonly = false; // editing must become enabled

Specify your

  • browser: Chrome 84.0.4147.89
  • editor version: 1.7.18
survey-creator Enhancement Logo image chooser adorner - allow choose image in spite of hidden logo property
survey-creator Bug Image Picker doesn't update items in designer on changing value/text and image link in choices property editor

Image Picker question should react on changing made in choices property editor immediately.

survey-pdf Bug Rendering html to image doesn't work in Edge

Fixed via this commit with conversion svg to base64

survey-analytics Enhancement isPublic and isVisible props instead of visibility

Change elements and columns visibility:

enum ElementVisibility {
  Visible,
  Invisible,
  PublicInvisible,
}

export interface IVisualizerPanelElement {
  ...
  visibility: ElementVisibility;
  ...
}

to two properties:

interface IVisualizerPanelElement {
  ...
  isVisible: boolean;
  isPublic: boolean;
  ...
}

for better user experience and covering all possible cases

and get rid of isTrustedAccess

Version: v1.8.0, released at Thursday, September 3, 2020, Total Issue Count: 11

The folloing JSON doesn't work:

{
      pages: [
        {
          name: "p01",
          elements: [
            {
              type: "text",
              name: "question2",
            },
          ],
        },
      ],
      locale: "de",
    }

The original issue created as an issue in SurveyJS help desk.

We set width/min-width attributes for the row. When it is hidden we do not set the width at all. We have to set it to the elements for the first row.

Product
survey-library
Type
BreakingChange
Description
readOnlyCommentRenderMode doesn't work
Product
survey-library
Type
Bug
Description
Comment values are not displayed when storeOthersAsComment=false

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

My goal is to preload data into the survey. When storeOthersAsComment is set to false saving and loading of other is working as expected. But the comment values are not loaded/displayed anymore.

What is the expected behavior?

Values of comment should be displayed when storeOthersAsComment is set to false.

How would you reproduce the current behavior (if this is a bug)?

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://plnkr.co/edit/01lPusQYEIFtxpBb

Specify your

  • browser: Chrome
  • browser version: 84
  • surveyjs platform (angular or react or jquery or knockout or vue): angular
  • surveyjs version: 1.7.26
Product
survey-library
Type
Enhancement
Description
Allow to disable caching getting choices from web services

In the most cases chaching the choices results from web services is a good idea. However, in some cases developers require to disable this option to get the latest results all the time. The following options has been added into survey settings.

  /**
   * Cache the result for choices getting from web services. Set this property to false, to disable the caching.
   */
  useCachingForChoicesRestfull: true,

Use the following code to disable caching: Survey.settings.useCachingForChoicesRestfull = false;.

Product
survey-library
Type
Bug
Description
Could not set "undefined" string as a value into a question

Survey converts "undefined" strings on setting question.value into undefined value. It should treat "undefined" string as a string.

Product
survey-creator
Type
Bug
Description
SurveyCreator readonly not applied properly

Are you requesting a feature, reporting a bug or ask a question?

Reporting a bug

What is the current behavior?

If a new value is assigned to SurveyCreator's readonly property the change is applied only partially in the interface:

  • Fields in the properties pane of the current element remain unchanged - editable or readonly depending on the previous state.
  • Inline editing of the current page's title and description remains unchanged - enabled or disabled depending on the previous state.
  • Inline editing of the Survey's title and description remains unchanged - enabled or disabled depending on the previous state, Once disabled it cannot be enabled anymore.

To see the interface reflect the new setting (enabled or disabled) the user must select a different element (i.e. select a different Page). Then the fields become editable or readonly as expected depending on the value of the setting.

What is the expected behavior?

When readonly is set to false all editing must become enabled, also for the currently selected element. When readonly is set to true all editing must became disabled.

How would you reproduce the current behavior (if this is a bug)?

Change the value of readonly and observe that the interface doesn't reflect the change.

Provide the test code and the tested page URL (if applicable)

Test code surveyCreator.readonly = true; // editing must become disabled surveyCreator.readonly = false; // editing must become enabled

Specify your

  • browser: Chrome 84.0.4147.89
  • editor version: 1.7.18
Product
survey-creator
Type
Enhancement
Description
Logo image chooser adorner - allow choose image in spite of hidden logo property

Image Picker question should react on changing made in choices property editor immediately.

Product
survey-pdf
Type
Bug
Description
Rendering html to image doesn't work in Edge

Fixed via this commit with conversion svg to base64

Product
survey-analytics
Type
Enhancement
Description
isPublic and isVisible props instead of visibility

Change elements and columns visibility:

enum ElementVisibility {
  Visible,
  Invisible,
  PublicInvisible,
}

export interface IVisualizerPanelElement {
  ...
  visibility: ElementVisibility;
  ...
}

to two properties:

interface IVisualizerPanelElement {
  ...
  isVisible: boolean;
  isPublic: boolean;
  ...
}

for better user experience and covering all possible cases

and get rid of isTrustedAccess

Version: v1.7.28, released at Wednesday, August 26, 2020, Total Issue Count: 11

Product Type Description
survey-library Bug Css Bug in React.js PanelDynamic Add new Button

My user was complaining that clicking add new on a dynamic panel was having no effect

What I found was everything seems ok on the first add. Every add after the first, the button gives a problem unless you click the button on the very bottom edge. Anywhere else and the user gets the arrow cursor instead of the hand and they can't click.

sorry to register this small bug for that is probably a simple fix for a css person, but I couldn't figure out what was causing it. (not being a css person)

example distilled down https://plnkr.co/edit/o2vInwNbg4PuOdTp?preview

recreate by trying to click on add new twice and having button receive focus

Seeing the issue on both edge and chrome

Happens in React.js; however same issue does NOT happen in JQuery

https://plnkr.co/edit/37AkVqqAJ88zLdgI

survey-library Bug Could not use brackets in constant strings in expressions

The following expression, doesn't work: '"Hello: {" + {display_name} + "}"'. We should not parse brackets in string constants.

survey-library Bug ImagePicker not working on React after v1.7.24/survey.react.js

When using imagepicker and surveyjs react components it's not possible to pick the first image available.

Screen Shot 2020-08-21 at 11 21 06 AM Screen Shot 2020-08-21 at 11 20 34 AM

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

It's not possible to select the first image on imagepicker when using any version after 1.7.24

What is the expected behavior?

We should be able to pick any image

How would you reproduce the current behavior (if this is a bug)?

Your website is broken, go there to imagepicker, change to react and try picking up the first one. The same problem happens if run locally.

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://surveyjs.io/Examples/Library?id=questiontype-imagepicker&platform=Reactjs&theme=bootstrap

Specify your

  • browser: chrome on osx
  • browser version: 84.0.4147.105 (Official Build) (64-bit)
  • surveyjs platform (angular or react or jquery or knockout or vue): react
  • surveyjs version: 1.7.25, 1.7.26 and 1.7.27
survey-library Bug Dropdown expand button too large and partially overlapped

image

survey-analytics Enhancement Implement save/restore state functionality for panel/chart/... visualizers (summary block)

See the https://surveyjs.answerdesk.io/ticket/details/t4720/save-state thread for more details

Is it possible to also now save state regarding other properties, such as the selected chart type, the ordering (default, ascending, descending)?

survey-analytics Bug Charts sometimes are rendered with very different size
survey-analytics Enhancement Charts (bar, probably others) - need an option to show percentage for answers instead of count
survey-analytics Enhancement Make private/public functionality for summary
survey-analytics Enhancement Permissions functionality

example:

console.log(visPanel.permissions);
visPanel.permissions = [
    {name:"name", visibility: 0}, 
    ...
];
survey-analytics Enhancement Save page size and column width in the state.
survey-analytics Bug Errors when set partial state

Version: v1.7.28, released at Wednesday, August 26, 2020, Total Issue Count: 11

Product
survey-library
Type
Bug
Description
Css Bug in React.js PanelDynamic Add new Button

My user was complaining that clicking add new on a dynamic panel was having no effect

What I found was everything seems ok on the first add. Every add after the first, the button gives a problem unless you click the button on the very bottom edge. Anywhere else and the user gets the arrow cursor instead of the hand and they can't click.

sorry to register this small bug for that is probably a simple fix for a css person, but I couldn't figure out what was causing it. (not being a css person)

example distilled down https://plnkr.co/edit/o2vInwNbg4PuOdTp?preview

recreate by trying to click on add new twice and having button receive focus

Seeing the issue on both edge and chrome

Happens in React.js; however same issue does NOT happen in JQuery

https://plnkr.co/edit/37AkVqqAJ88zLdgI

Product
survey-library
Type
Bug
Description
Could not use brackets in constant strings in expressions

The following expression, doesn't work: '"Hello: {" + {display_name} + "}"'. We should not parse brackets in string constants.

Product
survey-library
Type
Bug
Description
ImagePicker not working on React after v1.7.24/survey.react.js

When using imagepicker and surveyjs react components it's not possible to pick the first image available.

Screen Shot 2020-08-21 at 11 21 06 AM Screen Shot 2020-08-21 at 11 20 34 AM

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

It's not possible to select the first image on imagepicker when using any version after 1.7.24

What is the expected behavior?

We should be able to pick any image

How would you reproduce the current behavior (if this is a bug)?

Your website is broken, go there to imagepicker, change to react and try picking up the first one. The same problem happens if run locally.

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://surveyjs.io/Examples/Library?id=questiontype-imagepicker&platform=Reactjs&theme=bootstrap

Specify your

  • browser: chrome on osx
  • browser version: 84.0.4147.105 (Official Build) (64-bit)
  • surveyjs platform (angular or react or jquery or knockout or vue): react
  • surveyjs version: 1.7.25, 1.7.26 and 1.7.27
Product
survey-library
Type
Bug
Description
Dropdown expand button too large and partially overlapped

image

See the https://surveyjs.answerdesk.io/ticket/details/t4720/save-state thread for more details

Is it possible to also now save state regarding other properties, such as the selected chart type, the ordering (default, ascending, descending)?

Product
survey-analytics
Type
Bug
Description
Charts sometimes are rendered with very different size
Product
survey-analytics
Type
Enhancement
Description
Make private/public functionality for summary
Product
survey-analytics
Type
Enhancement
Description
Permissions functionality

example:

console.log(visPanel.permissions);
visPanel.permissions = [
    {name:"name", visibility: 0}, 
    ...
];
Product
survey-analytics
Type
Enhancement
Description
Save page size and column width in the state.
Product
survey-analytics
Type
Bug
Description
Errors when set partial state

Version: v1.7.27, released at Thursday, August 20, 2020, Total Issue Count: 11

Product Type Description
survey-library Enhancement Make `imageLink` in image question type localizable

Are you requesting a feature, reporting a bug or asking a question?

Feature

What is the current behavior?

The imageLink property of a image type question does not support localization.

What is the expected behavior?

Ideally the property should support localization just like the survey logo URL.

survey-library Bug Notification on chaning a custom property in matrix column is not fired

On adding a new property into a question, for example: Serializer.addProperty("text", {name: "prop1", category: "general"}), matrix column will create this property dynamically on setting cellType to "text". However, the notification on changing this property in matrix column will not fired, because the property will actually changed in template question of this column. We should fire notification for this dynamic property, otherwise changing property value of the matrix column in the code will not update a SurveyJS Creator property editor.

survey-library Bug onValueChanging and onValueChanged behaves differently in cascade dropdowns scenario

Are you requesting a feature, reporting a bug or asking a question?

question/bug

What is the current behavior?

when using cascade dropdowns when changing the first one (region in the plunker) onValueChanging and onValueChanged callbacks are regularly called for that question but they are not for the second one (country). Specifically two incoherent things happened:

  • onValueChanging show undefined oldValue
  • onValueChanged is not even called

What is the expected behavior?

I track changes monitoring through onValueChang(ed/ing) callbacks and I would expect the same behavior for question that are not directly changed by the user

How would you reproduce the current behavior (if this is a bug)?

https://plnkr.co/edit/R5qx6igbm8uBpYeg?preview

survey-library Bug Setvalue trigger not executed in `questionPerPageMode`

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

In a specific scenario a setValue trigger is not executed

  • "questionsOnPageMode": "questionPerPage"
  • Target question is in a panel

Note that both of these are required for the erroneous behavior

What is the expected behavior?

It should successfully execute the trigger

How would you reproduce the current behavior (if this is a bug)?

See below

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://surveyjs.io/create-survey

Test code

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "radiogroup",
     "name": "question2",
     "choices": [
      "item1",
      "item2",
      "item3"
     ]
    },
    {
     "type": "panel",
     "name": "panel2",
     "elements": [
      {
       "type": "text",
       "name": "question3"
      }
     ],
     "title": "panel2"
    }
   ]
  }
 ],
 "triggers": [
  {
   "type": "setvalue",
   "expression": "{question2} notempty",
   "setToName": "question3",
   "setValue": "abcd"
  }
 ],
 "textUpdateMode": "onTyping",
 "questionsOnPageMode": "questionPerPage"
}

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue):
  • surveyjs version:
survey-library Enhancement Introduce "rowValue" variable for matrix dropdown row

There is not access to row.value for a matrix dropdown row. It is needed in some column expressions (visibleIf, choicesVisibleIf) when you want to show/hide cell questions or some choices based on a row value. For more information, please read a ticket on SurveyJS support desk.

survey-library BreakingChange Do not remove values on hidding columns/rows in matrices if clearInvisibleValues is not onHidden

We are clearing values on hidding matrices rows and columns, even if clearInvisibleValues is "onComplete" (default) and even if it is "none". We are going to remove hidden rows/columns values from matrices only if clearInvisibleValues is "onHidden" and on finishing survey if clearInvisibleValues is "onComplete".

survey-library Bug 1.7.26 incorrectly executes logic

Are you requesting a feature, reporting a bug or asking a question?

Bug

Note that this bug breaks surveys that are running, so this is a big issue.

What is the current behavior?

Logic seems to be executed differently in .26 vs .25, see the attached screen recording. This is the JSON used.

{
 "pages": [
  {
   "name": "page",
   "elements": [
    {
     "type": "multipletext",
     "name": "V007",
     "title": "Question 1",
     "items": [
      {
       "name": "1",
       "title": "Answer 1"
      },
      {
       "name": "2",
       "title": "Answer 2"
      },
      {
       "name": "3",
       "title": "Answer 3"
      }
     ]
    },
    {
     "type": "html",
     "name": "question1",
     "html": "This should show the 3 answers\n<br/>\n{V007.1}<br/>\n{V007.2}<br/>\n{V007.3}<br/>"
    },
    {
     "type": "matrix",
     "name": "V008",
     "title": "This should show a row for each of the given answers",
     "columns": [
      {
       "value": "1",
       "text": "Positief"
      },
      {
       "value": "2",
       "text": "Neutraal"
      },
      {
       "value": "3",
       "text": "Negatief"
      }
     ],
     "rows": [
      {
       "value": "1",
       "text": "{V007.1}",
       "visibleIf": "{V007.1} notempty"
      },
      {
       "value": "2",
       "text": "{V007.2}",
       "visibleIf": "{V007.2} notempty"
      },
      {
       "value": "3",
       "text": "{V007.3}",
       "visibleIf": "{V007.3} notempty"
      }
     ],
     "hideIfRowsEmpty": true
    }
   ]
  }
 ]
}

Will attach a video in a sec

survey-library Bug Incorrect detection of the requiredInAllRowsError in matrix question

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

Incorrect detection of the requiredInAllRowsError error in QuestionMatrix when the value of any of the columns is 0 and the isAllRowRequired flag is set in the Vue version of SurveyJS. If you select a matrix item with a value of 0, then the requiredInAllRowsError will appear when the poll ends, as if this item was not selected at all. This behavior is only present in the Vue version of SurveyJS, in the others (jQuery, React, Knockout, Angular) everything works as expected.

How would you reproduce the current behavior (if this is a bug)?

Use Vue version of SurveyJS library and this config:

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrix",
     "name": "question",
     "title": "What's up?",
     "isRequired": true,
     "columns": [
      {
       "value": 0,
       "text": "No"
      },
      {
       "value": 1,
       "text": "Maybe"
      },
      {
       "value": 2,
       "text": "Yes"
      }
     ],
     "rows": [
      {
       "value": 1,
       "text": "Question 1"
      },
      {
       "value": 2,
       "text": "Question 2"
      },
      {
       "value": 3,
       "text": "Question 3"
      }
     ],
     "isAllRowRequired": true
    }
   ]
  }
 ]
}

Choose any answer options, at least one option "No" and complete the survey.

survey-creator Enhancement Add creator.onGenerateNewName event

There is a way to set the name to a new created element, for example question. However, there is no way to say that the automatic generated name doesn't work for you and you need another one. Here is the example of usage:

creator.onGenerateNewName.add(function(sender, options) {
  //We need to have unique names with another survey
  options.isUnique = anotherSurvey.getQuestionByName(options.name);
});

Event declaration:

  /**
   * The event is called on generation a new name for a new created element.
   * <br/> sender the survey creator object that fires the event
   * <br/> options.element a new created survey element. It can be question, panel or page
   * <br/> options.name a new suggested name, that is unique for the current survey. You can suggest your own name. If it is unique, creator will assign it to the element.
   * <br/> options.isUnique a boolean property, set this property to false, if you want to ask Creator to generate another name
   */
  public onGenerateNewName: Survey.Event<
    (sender: SurveyCreator, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyCreator, options: any) => any, any>();
survey-creator Enhancement Add unit test to creator.onConditionQuestionsGetList event

There were not unit test for creator.onConditionQuestionsGetList event.

survey-creator Bug Survey is not rendered after creator tab set changed or designer tab has been re-rendered

Version: v1.7.27, released at Thursday, August 20, 2020, Total Issue Count: 11

Product
survey-library
Type
Enhancement
Description
Make `imageLink` in image question type localizable

Are you requesting a feature, reporting a bug or asking a question?

Feature

What is the current behavior?

The imageLink property of a image type question does not support localization.

What is the expected behavior?

Ideally the property should support localization just like the survey logo URL.

On adding a new property into a question, for example: Serializer.addProperty("text", {name: "prop1", category: "general"}), matrix column will create this property dynamically on setting cellType to "text". However, the notification on changing this property in matrix column will not fired, because the property will actually changed in template question of this column. We should fire notification for this dynamic property, otherwise changing property value of the matrix column in the code will not update a SurveyJS Creator property editor.

Are you requesting a feature, reporting a bug or asking a question?

question/bug

What is the current behavior?

when using cascade dropdowns when changing the first one (region in the plunker) onValueChanging and onValueChanged callbacks are regularly called for that question but they are not for the second one (country). Specifically two incoherent things happened:

  • onValueChanging show undefined oldValue
  • onValueChanged is not even called

What is the expected behavior?

I track changes monitoring through onValueChang(ed/ing) callbacks and I would expect the same behavior for question that are not directly changed by the user

How would you reproduce the current behavior (if this is a bug)?

https://plnkr.co/edit/R5qx6igbm8uBpYeg?preview

Product
survey-library
Type
Bug
Description
Setvalue trigger not executed in `questionPerPageMode`

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

In a specific scenario a setValue trigger is not executed

  • "questionsOnPageMode": "questionPerPage"
  • Target question is in a panel

Note that both of these are required for the erroneous behavior

What is the expected behavior?

It should successfully execute the trigger

How would you reproduce the current behavior (if this is a bug)?

See below

Provide the test code and the tested page URL (if applicable)

Tested page URL: https://surveyjs.io/create-survey

Test code

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "radiogroup",
     "name": "question2",
     "choices": [
      "item1",
      "item2",
      "item3"
     ]
    },
    {
     "type": "panel",
     "name": "panel2",
     "elements": [
      {
       "type": "text",
       "name": "question3"
      }
     ],
     "title": "panel2"
    }
   ]
  }
 ],
 "triggers": [
  {
   "type": "setvalue",
   "expression": "{question2} notempty",
   "setToName": "question3",
   "setValue": "abcd"
  }
 ],
 "textUpdateMode": "onTyping",
 "questionsOnPageMode": "questionPerPage"
}

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue):
  • surveyjs version:
Product
survey-library
Type
Enhancement
Description
Introduce "rowValue" variable for matrix dropdown row

There is not access to row.value for a matrix dropdown row. It is needed in some column expressions (visibleIf, choicesVisibleIf) when you want to show/hide cell questions or some choices based on a row value. For more information, please read a ticket on SurveyJS support desk.

We are clearing values on hidding matrices rows and columns, even if clearInvisibleValues is "onComplete" (default) and even if it is "none". We are going to remove hidden rows/columns values from matrices only if clearInvisibleValues is "onHidden" and on finishing survey if clearInvisibleValues is "onComplete".

Product
survey-library
Type
Bug
Description
1.7.26 incorrectly executes logic

Are you requesting a feature, reporting a bug or asking a question?

Bug

Note that this bug breaks surveys that are running, so this is a big issue.

What is the current behavior?

Logic seems to be executed differently in .26 vs .25, see the attached screen recording. This is the JSON used.

{
 "pages": [
  {
   "name": "page",
   "elements": [
    {
     "type": "multipletext",
     "name": "V007",
     "title": "Question 1",
     "items": [
      {
       "name": "1",
       "title": "Answer 1"
      },
      {
       "name": "2",
       "title": "Answer 2"
      },
      {
       "name": "3",
       "title": "Answer 3"
      }
     ]
    },
    {
     "type": "html",
     "name": "question1",
     "html": "This should show the 3 answers\n<br/>\n{V007.1}<br/>\n{V007.2}<br/>\n{V007.3}<br/>"
    },
    {
     "type": "matrix",
     "name": "V008",
     "title": "This should show a row for each of the given answers",
     "columns": [
      {
       "value": "1",
       "text": "Positief"
      },
      {
       "value": "2",
       "text": "Neutraal"
      },
      {
       "value": "3",
       "text": "Negatief"
      }
     ],
     "rows": [
      {
       "value": "1",
       "text": "{V007.1}",
       "visibleIf": "{V007.1} notempty"
      },
      {
       "value": "2",
       "text": "{V007.2}",
       "visibleIf": "{V007.2} notempty"
      },
      {
       "value": "3",
       "text": "{V007.3}",
       "visibleIf": "{V007.3} notempty"
      }
     ],
     "hideIfRowsEmpty": true
    }
   ]
  }
 ]
}

Will attach a video in a sec

Product
survey-library
Type
Bug
Description
Incorrect detection of the requiredInAllRowsError in matrix question

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

Incorrect detection of the requiredInAllRowsError error in QuestionMatrix when the value of any of the columns is 0 and the isAllRowRequired flag is set in the Vue version of SurveyJS. If you select a matrix item with a value of 0, then the requiredInAllRowsError will appear when the poll ends, as if this item was not selected at all. This behavior is only present in the Vue version of SurveyJS, in the others (jQuery, React, Knockout, Angular) everything works as expected.

How would you reproduce the current behavior (if this is a bug)?

Use Vue version of SurveyJS library and this config:

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrix",
     "name": "question",
     "title": "What's up?",
     "isRequired": true,
     "columns": [
      {
       "value": 0,
       "text": "No"
      },
      {
       "value": 1,
       "text": "Maybe"
      },
      {
       "value": 2,
       "text": "Yes"
      }
     ],
     "rows": [
      {
       "value": 1,
       "text": "Question 1"
      },
      {
       "value": 2,
       "text": "Question 2"
      },
      {
       "value": 3,
       "text": "Question 3"
      }
     ],
     "isAllRowRequired": true
    }
   ]
  }
 ]
}

Choose any answer options, at least one option "No" and complete the survey.

Product
survey-creator
Type
Enhancement
Description
Add creator.onGenerateNewName event

There is a way to set the name to a new created element, for example question. However, there is no way to say that the automatic generated name doesn't work for you and you need another one. Here is the example of usage:

creator.onGenerateNewName.add(function(sender, options) {
  //We need to have unique names with another survey
  options.isUnique = anotherSurvey.getQuestionByName(options.name);
});

Event declaration:

  /**
   * The event is called on generation a new name for a new created element.
   * <br/> sender the survey creator object that fires the event
   * <br/> options.element a new created survey element. It can be question, panel or page
   * <br/> options.name a new suggested name, that is unique for the current survey. You can suggest your own name. If it is unique, creator will assign it to the element.
   * <br/> options.isUnique a boolean property, set this property to false, if you want to ask Creator to generate another name
   */
  public onGenerateNewName: Survey.Event<
    (sender: SurveyCreator, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyCreator, options: any) => any, any>();
Product
survey-creator
Type
Enhancement
Description
Add unit test to creator.onConditionQuestionsGetList event

There were not unit test for creator.onConditionQuestionsGetList event.

Version: v1.7.26, released at Tuesday, August 11, 2020, Total Issue Count: 10

Product Type Description
survey-library Enhancement Can we add textUpdateMode to other value in for dropdown questions

Are you requesting a feature, reporting a bug or asking a question?

Asking a question/Requesting a feature.

What is the current behavior?

Add textUpdateMode to "other" value in dropdown questions.

What is the expected behavior?

Can we please add textUpdateMode to other value in for dropdown questions

How would you reproduce the current behavior (if this is a bug)?

I tried this, https://plnkr.co/edit/0F73cRc8zGMYa2Aw, but it is not working.

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

your_code_here

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue):
  • surveyjs version:
survey-library Enhancement Correct defaultValue and correctAnswer on JSON loading

On changing question type for radiogroup/dropdown/checkbox, we can have incorrect defaultValue and correctAnswer properties. They are a single value for radiogroup/dropdown and array for checkbox. We have to correct them accordingly on setting these values.

survey-library Enhancement Do not allow to set question/page/panel name with traling space

Remove trailing spaces on setting question/page/panel name and do not allow to use in question name.

survey-library Enhancement Unacceptable performance for a large survey with many expression questions

The performance, on running conditions for a large survey over 10k lines with a lot of expressions in it, is unacceptable. We should change our algorithm that re-run conditions on changing the expression value. UPDATE: The performance for the particular survey was imporoved in 20-30 times.

survey-library Bug react: onValueChanging callbacks are called twice after selecting an option in dropdown

Are you requesting a feature, reporting a bug or asking a question?

question/bug

What is the current behavior?

In my adoption of surveyJS engine I heavily use onValueChanging event but I don't understand why attached callbacks are called twice after selecting an option

What is the expected behavior?

callbacks should be called once

How would you reproduce the current behavior (if this is a bug)?

see console https://plnkr.co/edit/81ZISxzNBgls32Ro

  • surveyjs platform: react
survey-library Bug None of your Print to PDF example are working

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

In you documentation, none of your examples are working.

Try:

On load we have: Uncaught TypeError: Cannot read property 'API' of undefined

Then... ReferenceError: SurveyPDF is not defined

What is the expected behavior?

Examples are working

How would you reproduce the current behavior (if this is a bug)?

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

your_code_here

Specify your

  • browser: chrome, edge
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue): Vue, jQuery
  • surveyjs version:
survey-creator Bug IE Reordering questions/choices

Are you requesting a feature, reporting a bug or ask a question?

Reporting a bug

What is the current behavior?

Dragging and dropping is not working in IE 11

What is the expected behavior?

Dragging and dropping is available

How would you reproduce the current behavior (if this is a bug)?

Create a new test survey with multiple questions, try to reorder in IE11

Provide the test code and the tested page URL (if applicable)

Specify your

  • browser: IE 11
  • editor version: 1.7.23
survey-creator Bug Clicking the "down" arrow on a dropdown question does not open the dropdown

Are you requesting a feature, reporting a bug or ask a question?

Reporting a bug

What is the current behavior?

When clicking the "down" arrow at the end of a dropdown question, nothing happens

What is the expected behavior?

The dropdown opens

How would you reproduce the current behavior (if this is a bug)?

Create a fresh survey on the creator and add a dropdown question, then press the arrow on the far right of the dropdown input

Provide the test code and the tested page URL (if applicable)

Specify your

  • browser: Chrome, Firefox, Edge
  • editor version: 1.7.23
survey-creator Bug Select the first question on the page on deleting a question in a panel

If there are several questions in the panel and you delete one question, then the next question in the panel should be selected or the panel, if there is no any question there. The original issue was created in SurveyJS support desk.

survey-creator Bug Select question... value duplicates in custom expression dropdown in logic tab
  1. Go to https://surveyjs.io/create-survey
  2. Go to logic tab
  3. Add new
  4. Choose custom expression in define action section
  5. ???
  6. There are two "Select question..." choices in dropdown

image

Version: v1.7.26, released at Tuesday, August 11, 2020, Total Issue Count: 10

Product
survey-library
Type
Enhancement
Description
Can we add textUpdateMode to other value in for dropdown questions

Are you requesting a feature, reporting a bug or asking a question?

Asking a question/Requesting a feature.

What is the current behavior?

Add textUpdateMode to "other" value in dropdown questions.

What is the expected behavior?

Can we please add textUpdateMode to other value in for dropdown questions

How would you reproduce the current behavior (if this is a bug)?

I tried this, https://plnkr.co/edit/0F73cRc8zGMYa2Aw, but it is not working.

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

your_code_here

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue):
  • surveyjs version:
Product
survey-library
Type
Enhancement
Description
Correct defaultValue and correctAnswer on JSON loading

On changing question type for radiogroup/dropdown/checkbox, we can have incorrect defaultValue and correctAnswer properties. They are a single value for radiogroup/dropdown and array for checkbox. We have to correct them accordingly on setting these values.

Product
survey-library
Type
Enhancement
Description
Do not allow to set question/page/panel name with traling space

Remove trailing spaces on setting question/page/panel name and do not allow to use in question name.

Product
survey-library
Type
Enhancement
Description
Unacceptable performance for a large survey with many expression questions

The performance, on running conditions for a large survey over 10k lines with a lot of expressions in it, is unacceptable. We should change our algorithm that re-run conditions on changing the expression value. UPDATE: The performance for the particular survey was imporoved in 20-30 times.

Are you requesting a feature, reporting a bug or asking a question?

question/bug

What is the current behavior?

In my adoption of surveyJS engine I heavily use onValueChanging event but I don't understand why attached callbacks are called twice after selecting an option

What is the expected behavior?

callbacks should be called once

How would you reproduce the current behavior (if this is a bug)?

see console https://plnkr.co/edit/81ZISxzNBgls32Ro

  • surveyjs platform: react
Product
survey-library
Type
Bug
Description
None of your Print to PDF example are working

Are you requesting a feature, reporting a bug or asking a question?

Bug

What is the current behavior?

In you documentation, none of your examples are working.

Try:

On load we have: Uncaught TypeError: Cannot read property 'API' of undefined

Then... ReferenceError: SurveyPDF is not defined

What is the expected behavior?

Examples are working

How would you reproduce the current behavior (if this is a bug)?

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

your_code_here

Specify your

  • browser: chrome, edge
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue): Vue, jQuery
  • surveyjs version:
Product
survey-creator
Type
Bug
Description
IE Reordering questions/choices

Are you requesting a feature, reporting a bug or ask a question?

Reporting a bug

What is the current behavior?

Dragging and dropping is not working in IE 11

What is the expected behavior?

Dragging and dropping is available

How would you reproduce the current behavior (if this is a bug)?

Create a new test survey with multiple questions, try to reorder in IE11

Provide the test code and the tested page URL (if applicable)

Specify your

  • browser: IE 11
  • editor version: 1.7.23

Are you requesting a feature, reporting a bug or ask a question?

Reporting a bug

What is the current behavior?

When clicking the "down" arrow at the end of a dropdown question, nothing happens

What is the expected behavior?

The dropdown opens

How would you reproduce the current behavior (if this is a bug)?

Create a fresh survey on the creator and add a dropdown question, then press the arrow on the far right of the dropdown input

Provide the test code and the tested page URL (if applicable)

Specify your

  • browser: Chrome, Firefox, Edge
  • editor version: 1.7.23

If there are several questions in the panel and you delete one question, then the next question in the panel should be selected or the panel, if there is no any question there. The original issue was created in SurveyJS support desk.

  1. Go to https://surveyjs.io/create-survey
  2. Go to logic tab
  3. Add new
  4. Choose custom expression in define action section
  5. ???
  6. There are two "Select question..." choices in dropdown

image

Version: v1.7.25, released at Tuesday, August 4, 2020, Total Issue Count: 30

Product Type Description
survey-library Enhancement Css class for the panel's required text span

based on the https://surveyjs.answerdesk.io/ticket/details/T4782

for the modern theme:

.sv-panel__required-text {}
survey-library Bug Remove code duplication for getItemClass functions

We have a code duplication for different platforms (knockout, react and vue) for getItemClass() for radigroup, checkbox and image picker. We have to make the same API for all platforms and move these functions into model to remove the code duplication.

survey-library Enhancement Allow to set different styles for checkbox items: "Select All" and "None"

Two new item styles were added into checkbox. For standard theme:

    itemSelectAll: "sv_q_checkbox_selectall",
    itemNone: "sv_q_checkbox_none",

For modern theme:

    itemSelectAll: "sv-checkbox--selectall",
    itemNone: "sv-checkbox--none",

Here is the example for rendering "Select All" in bold text for standard theme.

     .sv_q_checkbox_selectall {
        font-weight: bold;
      }
survey-library Bug Add imageLinkName into choicesByUrl type

We have "choicesFromWeb" property for image picker. However, it doesn't currently make sense since we do not have the ability to set the image link name and set imageLink property into image picker choices from the web service. Solution is to add imageLinkName property that will work for image picker question only.

survey-library Bug Matrix Header, Cell Allignment problem (default theme)

image

survey-creator Bug Survey-Creator: Property Type "multiplevalues"
survey-creator Enhancement The onCollectionItemDeleting event should be called from adorners (inplace choices editors)
survey-creator Enhancement Make property.displayName a higher priority than localization

For example, you want to change the display name for the "visible" property for question. Make it different from others objects (page, panel). You can do it by changing the JSON property displayName attribute.

Survey.Serializer.findProperty("question", "visible").displayName = "Custom Display Value For Visible Question Property";
survey-creator Bug single input question has focus in design time

1cc3b0b305

survey-creator Bug Condition Editor should use "text" question when setting value for "expression" question

Expression question is read-only. It doesn't make sense to use it for editing value. We have to use "text" question instead.

survey-analytics Enhancement Table results - implement option of deleting multiple records at a time
survey-analytics Enhancement Support the change language functionality
survey-analytics Enhancement Refactor visualizer code responsible for DOM elements manipulation (introduce helpers objects)
survey-analytics Enhancement Introduce an option to show values instead of titles in chart labels

See the https://surveyjs.answerdesk.io/ticket/details/t4720/save-state thread for more details

It may be possible to select the question value instead of the title in the labels? Sometimes the titles of the options are huge and that causes the charts to be quite difficult to read.

survey-analytics Bug Comment-type questions do not update its values as responses get filtered interactively.

Problem: I noticed that one of the features of survey-analytics "Interactive filtering for the select type questions" was not filtering the comment-type questions as well. Ther data was correctly updated as the filter applied but changes were not rendered on the screen.

How to reproduce:

Use a Survey with select type questions and comment type questions. Render the responses using the VisualizationPanel. Select one bar to interactively filter responses. Expected: Only comments belonging to the filtered responses are shown. Actual: Comments from all responses are shown.

survey-analytics Bug Show column not working after updating columns.

Steps to reproduce:

  1. Set column's visibility to 1(Invisible).
  2. Update columns through setter.
  3. Choose column in "Show column" dropdown.
  4. Column won't appear.
survey-analytics Bug Row's details button disappears after columns reorder.

Steps to reproduce:

  1. Move column.
  2. "Details" button disappears.
survey-analytics BreakingChange Should rename "update" method to "updateData"

for better api

this.surveyAnalyticsDataTables.updateData(data);
this.surveyAnalyticsVisPanel.updateData(data);
survey-analytics Enhancement Eliminate visualizers re-creation in panel on every render
survey-analytics Bug Save page size and current page number after updating.

Page size and current page number are restored to defaults after updating tables.

survey-analytics Enhancement Add title attribute for tabulator's cells to show full answer.

Add title attribute to show full answers and titles on the cell's hover.

survey-analytics Enhancement [Refactoring] Segregate layout manager from visualizationPanel
survey-analytics Enhancement [Refactoring] Extract "filterInfo" structure into a separate helper class
survey-analytics Bug Filter on click doesn't work for false value of boolean visualizer

image

survey-analytics Bug Number visualizer (gauge/bullet) doesn't react on change chart type
survey-analytics Bug SelectBase - items order change doesn't trigger re-rendering
survey-analytics Bug Matrix question destroys inner panel on data selection and breaks visualizer
survey-analytics Enhancement Add destroy method for table's extensions

Remove callbacks from the table's events when destroying extension.

survey-analytics Bug VizPanel: moveVisibleElement

if hidden elements exists moveElement starts to operate hidden elemenets. It should be another method moveVisibleElement which will pass correct indexes to moveElement (only visible elements).

survey-analytics Bug Drag bug: when manipulating with data dragging of question is fired

Version: v1.7.25, released at Tuesday, August 4, 2020, Total Issue Count: 30

Product
survey-library
Type
Enhancement
Description
Css class for the panel's required text span

based on the https://surveyjs.answerdesk.io/ticket/details/T4782

for the modern theme:

.sv-panel__required-text {}
Product
survey-library
Type
Bug
Description
Remove code duplication for getItemClass functions

We have a code duplication for different platforms (knockout, react and vue) for getItemClass() for radigroup, checkbox and image picker. We have to make the same API for all platforms and move these functions into model to remove the code duplication.

Product
survey-library
Type
Enhancement
Description
Allow to set different styles for checkbox items: "Select All" and "None"

Two new item styles were added into checkbox. For standard theme:

    itemSelectAll: "sv_q_checkbox_selectall",
    itemNone: "sv_q_checkbox_none",

For modern theme:

    itemSelectAll: "sv-checkbox--selectall",
    itemNone: "sv-checkbox--none",

Here is the example for rendering "Select All" in bold text for standard theme.

     .sv_q_checkbox_selectall {
        font-weight: bold;
      }
Product
survey-library
Type
Bug
Description
Add imageLinkName into choicesByUrl type

We have "choicesFromWeb" property for image picker. However, it doesn't currently make sense since we do not have the ability to set the image link name and set imageLink property into image picker choices from the web service. Solution is to add imageLinkName property that will work for image picker question only.

Product
survey-library
Type
Bug
Description
Matrix Header, Cell Allignment problem (default theme)

image

Product
survey-creator
Type
Bug
Description
Survey-Creator: Property Type "multiplevalues"
Product
survey-creator
Type
Enhancement
Description
Make property.displayName a higher priority than localization

For example, you want to change the display name for the "visible" property for question. Make it different from others objects (page, panel). You can do it by changing the JSON property displayName attribute.

Survey.Serializer.findProperty("question", "visible").displayName = "Custom Display Value For Visible Question Property";
Product
survey-creator
Type
Bug
Description
single input question has focus in design time

1cc3b0b305

Expression question is read-only. It doesn't make sense to use it for editing value. We have to use "text" question instead.

Product
survey-analytics
Type
Enhancement
Description
Table results - implement option of deleting multiple records at a time
Product
survey-analytics
Type
Enhancement
Description
Support the change language functionality
Product
survey-analytics
Type
Enhancement
Description
Introduce an option to show values instead of titles in chart labels

See the https://surveyjs.answerdesk.io/ticket/details/t4720/save-state thread for more details

It may be possible to select the question value instead of the title in the labels? Sometimes the titles of the options are huge and that causes the charts to be quite difficult to read.

Problem: I noticed that one of the features of survey-analytics "Interactive filtering for the select type questions" was not filtering the comment-type questions as well. Ther data was correctly updated as the filter applied but changes were not rendered on the screen.

How to reproduce:

Use a Survey with select type questions and comment type questions. Render the responses using the VisualizationPanel. Select one bar to interactively filter responses. Expected: Only comments belonging to the filtered responses are shown. Actual: Comments from all responses are shown.

Product
survey-analytics
Type
Bug
Description
Show column not working after updating columns.

Steps to reproduce:

  1. Set column's visibility to 1(Invisible).
  2. Update columns through setter.
  3. Choose column in "Show column" dropdown.
  4. Column won't appear.
Product
survey-analytics
Type
Bug
Description
Row's details button disappears after columns reorder.

Steps to reproduce:

  1. Move column.
  2. "Details" button disappears.
Product
survey-analytics
Type
BreakingChange
Description
Should rename "update" method to "updateData"

for better api

this.surveyAnalyticsDataTables.updateData(data);
this.surveyAnalyticsVisPanel.updateData(data);
Product
survey-analytics
Type
Enhancement
Description
Eliminate visualizers re-creation in panel on every render
Product
survey-analytics
Type
Bug
Description
Save page size and current page number after updating.

Page size and current page number are restored to defaults after updating tables.

Product
survey-analytics
Type
Enhancement
Description
Add title attribute for tabulator's cells to show full answer.

Add title attribute to show full answers and titles on the cell's hover.

Product
survey-analytics
Type
Enhancement
Description
[Refactoring] Segregate layout manager from visualizationPanel
Product
survey-analytics
Type
Enhancement
Description
[Refactoring] Extract "filterInfo" structure into a separate helper class
Product
survey-analytics
Type
Bug
Description
Filter on click doesn't work for false value of boolean visualizer

image

Product
survey-analytics
Type
Bug
Description
Number visualizer (gauge/bullet) doesn't react on change chart type
Product
survey-analytics
Type
Bug
Description
SelectBase - items order change doesn't trigger re-rendering
Product
survey-analytics
Type
Enhancement
Description
Add destroy method for table's extensions

Remove callbacks from the table's events when destroying extension.

Product
survey-analytics
Type
Bug
Description
VizPanel: moveVisibleElement

if hidden elements exists moveElement starts to operate hidden elemenets. It should be another method moveVisibleElement which will pass correct indexes to moveElement (only visible elements).

Product
survey-analytics
Type
Bug
Description
Drag bug: when manipulating with data dragging of question is fired

Version: v1.7.24, released at Tuesday, July 28, 2020, Total Issue Count: 9

Product Type Description
survey-library Bug Panel count reverts to 1 from 0 when loading a survey in designer and there is a nested dynamic panel

The original bug was posted on SurveyJS Support Desk.

survey-library Bug rate question doesn't allow to re-select the same value (jQuery, knockout, angular)

If you select a value in rate question, then from the code clear it and try to select the same value visually, you can't do it. We are changing the value on knockout onChanged event and knockout doens't fire this event on re-selecting the value.

survey-library Enhancement textUpdateMode is applicable for entire survey, and not per question

UPD (by Andrew):


The new property textUpdateMode is added into text and comment questions. For text question it is visible when inputType equals to text. There are three possible values, "default", "onBlur" and "onTyping". If the value is default then survey.textUpdateMode property is used.


Are you requesting a feature, reporting a bug or asking a question?

Requesting a Feature/ Asking a Question

What is the current behavior?

textUpdateMode is applicable for entire survey, and not per question

What is the expected behavior?

Is there a way to set textUpdateMode per question? I have a usecase where I need the textUpdateMode mode to be different for different questions. For eg. I am trying to use inputmasking, but it does not work properly when textUpdateMode is set to "onTyping" but for other questions, the business logic demands it to be set to onTyping. Any work around this would be highly appreciated.

How would you reproduce the current behavior (if this is a bug)?

https://plnkr.co/edit/fSLcFlLyiN3rdLzo

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

your_code_here

survey-library Enhancement Render requiredText for required Panel

Render required text for requried Panel and respect survey.questionTitlePattern for Panel as well.

survey-library Enhancement Add error style for a panel
survey-creator BreakingChange Change csvDelimiter in tranlation model from '|' to ','

MS Excel doesn't understand '|' delimiter and on saving put additiona quotes. As result translation parser could not parse the file correctly. By changing the delimiter to ',' solves the issue.

survey-creator Enhancement Introduce options to modify separator top icon
survey-analytics Enhancement Implement visualization for matrixdropdown question type

Here is a sample for matrixdropdown with rows text.

survey-analytics Enhancement Review data normalization (normalizedData) in the examples

Do we need this operation now? If yes we should move it inside the analytics-library itself.

var normalizedData = data.map(function (item) {
  survey.getAllQuestions().forEach(function (q) {
    if (item[q.name] === undefined) {
      item[q.name] = "";
    }
  });
  return item;
});

Version: v1.7.24, released at Tuesday, July 28, 2020, Total Issue Count: 9

The original bug was posted on SurveyJS Support Desk.

If you select a value in rate question, then from the code clear it and try to select the same value visually, you can't do it. We are changing the value on knockout onChanged event and knockout doens't fire this event on re-selecting the value.

Product
survey-library
Type
Enhancement
Description
textUpdateMode is applicable for entire survey, and not per question

UPD (by Andrew):


The new property textUpdateMode is added into text and comment questions. For text question it is visible when inputType equals to text. There are three possible values, "default", "onBlur" and "onTyping". If the value is default then survey.textUpdateMode property is used.


Are you requesting a feature, reporting a bug or asking a question?

Requesting a Feature/ Asking a Question

What is the current behavior?

textUpdateMode is applicable for entire survey, and not per question

What is the expected behavior?

Is there a way to set textUpdateMode per question? I have a usecase where I need the textUpdateMode mode to be different for different questions. For eg. I am trying to use inputmasking, but it does not work properly when textUpdateMode is set to "onTyping" but for other questions, the business logic demands it to be set to onTyping. Any work around this would be highly appreciated.

How would you reproduce the current behavior (if this is a bug)?

https://plnkr.co/edit/fSLcFlLyiN3rdLzo

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

your_code_here

Product
survey-library
Type
Enhancement
Description
Render requiredText for required Panel

Render required text for requried Panel and respect survey.questionTitlePattern for Panel as well.

Product
survey-library
Type
Enhancement
Description
Add error style for a panel
Product
survey-creator
Type
BreakingChange
Description
Change csvDelimiter in tranlation model from '|' to ','

MS Excel doesn't understand '|' delimiter and on saving put additiona quotes. As result translation parser could not parse the file correctly. By changing the delimiter to ',' solves the issue.

Product
survey-creator
Type
Enhancement
Description
Introduce options to modify separator top icon
Product
survey-analytics
Type
Enhancement
Description
Implement visualization for matrixdropdown question type

Here is a sample for matrixdropdown with rows text.

Product
survey-analytics
Type
Enhancement
Description
Review data normalization (normalizedData) in the examples

Do we need this operation now? If yes we should move it inside the analytics-library itself.

var normalizedData = data.map(function (item) {
  survey.getAllQuestions().forEach(function (q) {
    if (item[q.name] === undefined) {
      item[q.name] = "";
    }
  });
  return item;
});

Version: v1.7.21, released at Thursday, July 23, 2020, Total Issue Count: 9

Product Type Description
survey-library BreakingChange Pass the question instance in options of the onClearFiles event
survey-library Bug Warning in react version: "Can't perform a React state update on an unmounted component."

On setting a value to a question that was shown (mounted) and now invisible/on another page or hidden (unmounted), react raise the warning"Can't perform a React state update on an unmounted component.". The original issue came from SurveyJS Support Desk.

survey-creator Enhancement ItemValue Property Editor, Fast Entry works slow for several hunderds items

There is a huge performance issue on editing several hunderds items in Fast Entry (multiline text) section.

survey-creator Enhancement Implement property.nextToProperty attribute.

Currently, a developer requires to write a lot of code to place the property exactly next to another property to make sure it is in the right place. category and visibleIndex attributes may do not work correctly, since the property list and their order in the tab/category can be changed due many reasons. To make sure that a new property is placed exactly next to the particular property you can use nextToProperty attribute. Here is the example:

Survey.Serializer.addProperty("question", {name: "tag", nextToProperty: "title"});
Survey.Serializer.addProperty("question", {name: "tag2", nextToProperty: "tag"});
survey-analytics Enhancement Support visual representation for the comments of selectbase questions

There are requests for comments visualization. See e.g. this thread for more details - https://surveyjs.answerdesk.io/ticket/details/t4453/survey-analytics

survey-analytics Enhancement Implement tabulator support as table-view visualizer
survey-analytics BreakingChange Split survey-analytics package on several bundles

Split survey-analytics package on several bundles:

  • survey.analytics.summary - charts, diagrams, wordclouds and so on - visualization per question
  • survey.analytics.datatables - tabular reprevsenation via datatables (https://datatables.net/)
  • survey.analytics.tabulator- tabular reprevsenation via tabulator (http://tabulator.info/)

I hope we could release only one tabular visualizer

survey-analytics BreakingChange Remove the "targetElement" from the visualizer constructor parameters

It is nesessary for the render function only. This will allow doesn't re-create visualizers in panels,

survey-analytics BreakingChange Make CSS class names unified

At this moment (Jul 2020) we have here two prefixes in CSS styles: "sva-" ("sva-toolbar") and "sa-" ("sa-visualizer__toolbar") We need leave only one

Version: v1.7.21, released at Thursday, July 23, 2020, Total Issue Count: 9

Product
survey-library
Type
BreakingChange
Description
Pass the question instance in options of the onClearFiles event

On setting a value to a question that was shown (mounted) and now invisible/on another page or hidden (unmounted), react raise the warning"Can't perform a React state update on an unmounted component.". The original issue came from SurveyJS Support Desk.

Product
survey-creator
Type
Enhancement
Description
ItemValue Property Editor, Fast Entry works slow for several hunderds items

There is a huge performance issue on editing several hunderds items in Fast Entry (multiline text) section.

Product
survey-creator
Type
Enhancement
Description
Implement property.nextToProperty attribute.

Currently, a developer requires to write a lot of code to place the property exactly next to another property to make sure it is in the right place. category and visibleIndex attributes may do not work correctly, since the property list and their order in the tab/category can be changed due many reasons. To make sure that a new property is placed exactly next to the particular property you can use nextToProperty attribute. Here is the example:

Survey.Serializer.addProperty("question", {name: "tag", nextToProperty: "title"});
Survey.Serializer.addProperty("question", {name: "tag2", nextToProperty: "tag"});
Product
survey-analytics
Type
Enhancement
Description
Support visual representation for the comments of selectbase questions

There are requests for comments visualization. See e.g. this thread for more details - https://surveyjs.answerdesk.io/ticket/details/t4453/survey-analytics

Product
survey-analytics
Type
Enhancement
Description
Implement tabulator support as table-view visualizer
Product
survey-analytics
Type
BreakingChange
Description
Split survey-analytics package on several bundles

Split survey-analytics package on several bundles:

  • survey.analytics.summary - charts, diagrams, wordclouds and so on - visualization per question
  • survey.analytics.datatables - tabular reprevsenation via datatables (https://datatables.net/)
  • survey.analytics.tabulator- tabular reprevsenation via tabulator (http://tabulator.info/)

I hope we could release only one tabular visualizer

Product
survey-analytics
Type
BreakingChange
Description
Remove the "targetElement" from the visualizer constructor parameters

It is nesessary for the render function only. This will allow doesn't re-create visualizers in panels,

Product
survey-analytics
Type
BreakingChange
Description
Make CSS class names unified

At this moment (Jul 2020) we have here two prefixes in CSS styles: "sva-" ("sva-toolbar") and "sa-" ("sa-visualizer__toolbar") We need leave only one

Version: v1.7.20, released at Wednesday, July 15, 2020, Total Issue Count: 13

Product Type Description
survey-library Bug after executing "skip to question" trigger could not change the focus from the focused question

SurveyJS keeps focus the question that is in "skip to question" trigger.

survey-library Bug Convert component name to lower case automatically

If a developer use capital letter in component name, new question name, then adding new property will not work correctly. We need to convert component name into lowercase automatically.

survey-library Bug Can't complete survey with required HTML question
survey-library Enhancement Extend Survey.Serializer API

Survey.Serializer.getAllClasses(); returns the string array of all classes registered in the SurveyJS Library Serializer.getAllPropertiesByName(propertyName) returns the list of JsonObjectProperty objects that has name equals to propertyName parameter. JsonObjectProperty.classInfo - read-only property that returns the JSON class to which the property belongs.

survey-creator Bug Scrollbar appearing when I add image picker question (default theme)
survey-creator Bug Turkish locale instead of danish

Are you requesting a feature, reporting a bug or ask a question?

Bug

What is the current behavior?

When setting currentLocale to "da" Survey Creator elements translate to Turkish

What is the expected behavior?

When setting currentLocale to "da" Survey Creator should translate to Danish

How would you reproduce the current behavior (if this is a bug)?

SurveyCreator.localization.currentLocale = "da";

Provide the test code and the tested page URL (if applicable)

https://plnkr.co/edit/lYX67iAOC1MSP2Yj?preview

survey-creator Enhancement Display expression operator in current locale

The following expression: {question1} notempty and ({question2} = 1) displays as: (notempty {question1} and ({question2} == 1)) It should be display in English as: {question1} is not empty and ({question2} == 1) and in Deutsch as {question1} ist nicht leer und ({question2} == 1)

survey-creator Bug Image question shows inplace actions for "hide/show title" and "make the question requried"

Image question doesn't have title and value. As result related adorners have to be hidden.

survey-creator Bug Title and description adorners throw exception if property is removed

If you remove the property:

Survey.Serializer.removeProperty("question", "description");

You get the error: image

See the https://surveyjs.answerdesk.io/ticket/details/t4683/removing-property thread for more details

survey-creator Enhancement Select survey in property grid on survey title/description editing via adorner
survey-analytics Enhancement Support different calculation types for numeric answers - sum, avg, min, max and so on

See this thread for more details - https://surveyjs.answerdesk.io/ticket/details/t4431/graph-chart-visuals-for-numeric-datatypes

Suppose we want to get the number of covid patients in each hospital, then this data can be presented in several ways like total number of patients, average number of patients in each hospital, maximum and minimum number of patients across all hospitals. This can help to take decisions. (Furthermore scattering around these points will provide more useful information - not a required feature).

survey-analytics Enhancement Add french localization
survey-analytics Bug Unable to render Data Table in Analytics in Vue

I am unbale to render the data table in my Vue component. I am guessing it is the way that jquery is loaded in the vue app.

I am just loading jquery and the plugins using the script tags in the index.html file

    <script src="https://unpkg.com/jquery"></script>
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.6.2/js/dataTables.buttons.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.print.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.html5.js"></script>
    <script src="https://cdn.datatables.net/colreorder/1.5.2/js/dataTables.colReorder.js"></script>
    <script src="https://cdn.datatables.net/responsive/2.2.4/js/dataTables.responsive.js"></script>
    <script src="https://cdn.datatables.net/rowgroup/1.1.2/js/dataTables.rowGroup.js"></script>
    <script src="https://cdn.datatables.net/select/1.3.1/js/dataTables.select.js"></script>

while survey-analytics is loaded in the vue component

import * as SurveyAnalytics from 'survey-analytics';

And the table is created as such:

const surveyTableNode = document.getElementById('surveyTable');
surveyTableNode.innerHTML = '';

const surveyAnalyticsDataTables = new SurveyAnalytics.DataTables(surveyTableNode, this.survey, normalizedData);

surveyAnalyticsDataTables.render();

However I am getting this error in the .render() function.

Screen Shot 2020-07-07 at 2 59 58 PM

and the error occurs at this line in survey.analytics.js

var datatableApiRef = (this.datatableApi = jquery__WEBPACK_IMPORTED_MODULE_1__(tableNode).DataTable(options));

Any idea what could be the problem? And is there a better way to load jquery and the plugins in vue apps?

Any help would be great thanks

Version: v1.7.20, released at Wednesday, July 15, 2020, Total Issue Count: 13

SurveyJS keeps focus the question that is in "skip to question" trigger.

Product
survey-library
Type
Bug
Description
Convert component name to lower case automatically

If a developer use capital letter in component name, new question name, then adding new property will not work correctly. We need to convert component name into lowercase automatically.

Product
survey-library
Type
Bug
Description
Can't complete survey with required HTML question
Product
survey-library
Type
Enhancement
Description
Extend Survey.Serializer API

Survey.Serializer.getAllClasses(); returns the string array of all classes registered in the SurveyJS Library Serializer.getAllPropertiesByName(propertyName) returns the list of JsonObjectProperty objects that has name equals to propertyName parameter. JsonObjectProperty.classInfo - read-only property that returns the JSON class to which the property belongs.

Product
survey-creator
Type
Bug
Description
Scrollbar appearing when I add image picker question (default theme)
Product
survey-creator
Type
Bug
Description
Turkish locale instead of danish

Are you requesting a feature, reporting a bug or ask a question?

Bug

What is the current behavior?

When setting currentLocale to "da" Survey Creator elements translate to Turkish

What is the expected behavior?

When setting currentLocale to "da" Survey Creator should translate to Danish

How would you reproduce the current behavior (if this is a bug)?

SurveyCreator.localization.currentLocale = "da";

Provide the test code and the tested page URL (if applicable)

https://plnkr.co/edit/lYX67iAOC1MSP2Yj?preview

Product
survey-creator
Type
Enhancement
Description
Display expression operator in current locale

The following expression: {question1} notempty and ({question2} = 1) displays as: (notempty {question1} and ({question2} == 1)) It should be display in English as: {question1} is not empty and ({question2} == 1) and in Deutsch as {question1} ist nicht leer und ({question2} == 1)

Image question doesn't have title and value. As result related adorners have to be hidden.

Product
survey-creator
Type
Bug
Description
Title and description adorners throw exception if property is removed

If you remove the property:

Survey.Serializer.removeProperty("question", "description");

You get the error: image

See the https://surveyjs.answerdesk.io/ticket/details/t4683/removing-property thread for more details

Product
survey-creator
Type
Enhancement
Description
Select survey in property grid on survey title/description editing via adorner

See this thread for more details - https://surveyjs.answerdesk.io/ticket/details/t4431/graph-chart-visuals-for-numeric-datatypes

Suppose we want to get the number of covid patients in each hospital, then this data can be presented in several ways like total number of patients, average number of patients in each hospital, maximum and minimum number of patients across all hospitals. This can help to take decisions. (Furthermore scattering around these points will provide more useful information - not a required feature).

Product
survey-analytics
Type
Enhancement
Description
Add french localization
Product
survey-analytics
Type
Bug
Description
Unable to render Data Table in Analytics in Vue

I am unbale to render the data table in my Vue component. I am guessing it is the way that jquery is loaded in the vue app.

I am just loading jquery and the plugins using the script tags in the index.html file

    <script src="https://unpkg.com/jquery"></script>
    <script src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.6.2/js/dataTables.buttons.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.print.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.6.2/js/buttons.html5.js"></script>
    <script src="https://cdn.datatables.net/colreorder/1.5.2/js/dataTables.colReorder.js"></script>
    <script src="https://cdn.datatables.net/responsive/2.2.4/js/dataTables.responsive.js"></script>
    <script src="https://cdn.datatables.net/rowgroup/1.1.2/js/dataTables.rowGroup.js"></script>
    <script src="https://cdn.datatables.net/select/1.3.1/js/dataTables.select.js"></script>

while survey-analytics is loaded in the vue component

import * as SurveyAnalytics from 'survey-analytics';

And the table is created as such:

const surveyTableNode = document.getElementById('surveyTable');
surveyTableNode.innerHTML = '';

const surveyAnalyticsDataTables = new SurveyAnalytics.DataTables(surveyTableNode, this.survey, normalizedData);

surveyAnalyticsDataTables.render();

However I am getting this error in the .render() function.

Screen Shot 2020-07-07 at 2 59 58 PM

and the error occurs at this line in survey.analytics.js

var datatableApiRef = (this.datatableApi = jquery__WEBPACK_IMPORTED_MODULE_1__(tableNode).DataTable(options));

Any idea what could be the problem? And is there a better way to load jquery and the plugins in vue apps?

Any help would be great thanks

Version: v1.7.19, released at Friday, July 10, 2020, Total Issue Count: 15

Product Type Description
survey-library Bug Error box doesn't disappear when other value is entered

var json = { checkErrorsMode: "onValueChanged", questions: [ { type: "dropdown", name: "car", title: "What car are you driving?", isRequired: true, hasOther: true, choices: [ "Citroen" ] } ] };

  1. Select other
  2. Enter other value -> error box will be still visible
survey-library Bug Bug with errors looking in default theme (SurveyJS Vue).
survey-library Bug Missing minRateDescription in narrow window size in modern theme

https://plnkr.co/edit/tHUvGynrnvHofui8

How it should look image

But if decrease window size minRateDescription and maxRateDescription are missing image

survey-library BreakingChange Update question errors on value change if question has error already regardless survey.checkErrorsMode property.

If survey.checkErrosMode is "onNextPage" or "onComplete", but question already shows error, then it makes sense to update error for this question on changing value as "onValueChanged" is set. Here is the example, lets say a survey has several required questions and checkErrorsMode equals to "onNextPage", default value. End-user started to fill out a page and forgot to answer couple of question on the current page, press the Next Page. He will see two errors in questions and survey will focus the first question with the error. On entering by end-user value into required question, he will still see the error and it may confuse him/her. It makes sense to remove the error as "onValueChanged" is set.

survey-library Bug Button "Next" and "Complete" doesn't work if end-user has fixed an error in the the focused question

The minimum reproducable JSON:

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "q1",
     "isRequired": true
    }
   ]
  }
 ],
 "checkErrorsMode": "onValueChanged"
}

Press "Complete" with empty q1, then add a symbol into q1 question, without losing the focus from q1 press "Complete" button again. As result the error will be disappeared, but survey will not be completed. The focus will be on the "Complete" button. End-user will have to press one more time on "Complete" button.

survey-library Enhancement Introduce minWidth/maxWidth properties for question base type

Users should be able set question size constraints declaratively as well as reset default constraint values.

survey-library Bug Vue js "Comment" question UI bug with error box

link to reproduce:

https://plnkr.co/edit/Beeghtmh8WOt73ZI

  • click complete btn
survey-creator Enhancement Introduce an adorner for image picker items editing

ImagePicker improvement: upload image into service, including external service, and add addorner with ability to add/delete the image. We are working on this functionality right now. Our service will allow to post images from the local computer and return the link on them that you will be able to use. You will be able to re-use your own service with our UI.

https://surveyjs.answerdesk.io/ticket/details/T969

survey-creator Enhancement onElementAllowOptions 'undefined' error

Are you requesting a feature, reporting a bug or ask a question?

Bug

What is the current behavior?

image

How would you reproduce the current behavior (if this is a bug)?

I opened one of the samples in Plunker, and added code as below: image

I can see the same error as above in console. (Above error is from my code where creator = surveryCreator) I just copied the code as is from docs. I am not sure if this is the right way to do it, but I could not find any other documentation for the same.

Test code

surveyCreator.onElementAllowOptions.add(function (sender, options) {
        options.allowAddToToolbox = false;
    });

Specify your

  • browser: Chomre
  • editor version: 1.7.18
survey-creator Enhancement Add ability to show confirm dialog on deleting matrix columns and other items in collection properties

Added the new event.

  /**
   * The event is called on deleting a collection item from the Property Editor. For example: column in columns editor or item in choices and so on.
   * <br/> sender the survey creator object that fires the event
   * <br/> options.obj the survey object: Question, Panel, Page or Survey
   * <br/> options.property the collection property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties
   * <br/> options.propertyName the collection property name
   * <br/> options.collection the editing collection where deleting item is located. It is can be columns in the matrices or choices in dropdown question and so on.
   * <br/> options.item the collection item that we are going to delete
   * <br/> options.allowDelete a boolean value. It is true by default. Set it false to abondome the element removing from the collection
   */
  public onCollectionItemDeleting: Survey.Event<(sender: SurveyCreator, options: any) => any, any>;

Example of using, showing confirm dialog for deleting item in pages collection.

creator.onCollectionItemDeleting.add(function (sender, options) {
  if (options.propertyName == "pages") {
     options.allowDelete = confirm("Do you want to delete the page?");
 }
});
survey-creator Enhancement Collapse/Expand Accordions for Property Editors
  /**
   * Collapse all property editor tabs (accordions) in properties panel
   */
  public collapseAllPropertyTabs(): void {
    this.getAccordionTabs().forEach((tab: SurveyElementEditorTabModel) => {
      tab.collapse();
    });
  }

  /**
   * Expand all property editor tabs (accordions) in properties panel
   */
  public expandAllPropertyTabs(): void {
    this.getAccordionTabs().forEach((tab: SurveyElementEditorTabModel) => {
      tab.expand();
    });
  }

  /**
   * Expand certain property editor tab (accordion) in properties panel
   * name - tab category name
   */
  public expandPropertyTab(name: string): void {
    this.getAccordionTabs().forEach((tab: SurveyElementEditorTabModel) => {
      if (tab.name !== name) return;
      tab.expand();
    });
  }

  /**
   * Collapse certain property editor tab (accordion) in properties panel
   * name - tab category name
   */
  public collapsePropertyTab(name: string): void {
    this.getAccordionTabs().forEach((tab: SurveyElementEditorTabModel) => {
      if (tab.name === name) tab.collapse();
    });
  }
}
survey-creator Enhancement Allow to have different text for "Add New" button in Collection Property Editor

Currently we have the same localization string for "Choices", "Columns", "Pages" properties on adding a new item: "Add New". It requires, optionally, to have different localization string for these properties. Here is the example:

SurveyCreator.defaultStrings.pe["addNew@pages"] = "Add New Page";
SurveyCreator.defaultStrings.pe["addNew@columns"] = "Add New Column";
survey-creator Enhancement Add new localization string for logic add "New Item"

ed.lg.addNewItem will be used for "New Item" in logic tab, if it is not empty. Otherwise "pe.addNew" localization string will be used (as in previous versions < 1.7.19).

survey-creator Enhancement Focus first property editor on accordion tab expanded

Instead of focusing the accordion header we need to focus the first property editor in this tab.

survey-creator Enhancement Allow optionally to delete all pages from Pages Property Editor, including the current.

By default, we do not allow to delete the current page. We can optionally allow it by using the following code:

creator.onCanDeleteItem.add(function (sender, options) {
  if (options.item.getType() == "page") {
    options.canDelete = true;
  }
});

Version: v1.7.19, released at Friday, July 10, 2020, Total Issue Count: 15

Product
survey-library
Type
Bug
Description
Error box doesn't disappear when other value is entered

var json = { checkErrorsMode: "onValueChanged", questions: [ { type: "dropdown", name: "car", title: "What car are you driving?", isRequired: true, hasOther: true, choices: [ "Citroen" ] } ] };

  1. Select other
  2. Enter other value -> error box will be still visible
Product
survey-library
Type
Bug
Description
Bug with errors looking in default theme (SurveyJS Vue).
Product
survey-library
Type
Bug
Description
Missing minRateDescription in narrow window size in modern theme

https://plnkr.co/edit/tHUvGynrnvHofui8

How it should look image

But if decrease window size minRateDescription and maxRateDescription are missing image

If survey.checkErrosMode is "onNextPage" or "onComplete", but question already shows error, then it makes sense to update error for this question on changing value as "onValueChanged" is set. Here is the example, lets say a survey has several required questions and checkErrorsMode equals to "onNextPage", default value. End-user started to fill out a page and forgot to answer couple of question on the current page, press the Next Page. He will see two errors in questions and survey will focus the first question with the error. On entering by end-user value into required question, he will still see the error and it may confuse him/her. It makes sense to remove the error as "onValueChanged" is set.

The minimum reproducable JSON:

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "q1",
     "isRequired": true
    }
   ]
  }
 ],
 "checkErrorsMode": "onValueChanged"
}

Press "Complete" with empty q1, then add a symbol into q1 question, without losing the focus from q1 press "Complete" button again. As result the error will be disappeared, but survey will not be completed. The focus will be on the "Complete" button. End-user will have to press one more time on "Complete" button.

Product
survey-library
Type
Enhancement
Description
Introduce minWidth/maxWidth properties for question base type

Users should be able set question size constraints declaratively as well as reset default constraint values.

Product
survey-library
Type
Bug
Description
Vue js "Comment" question UI bug with error box

link to reproduce:

https://plnkr.co/edit/Beeghtmh8WOt73ZI

  • click complete btn
Product
survey-creator
Type
Enhancement
Description
Introduce an adorner for image picker items editing

ImagePicker improvement: upload image into service, including external service, and add addorner with ability to add/delete the image. We are working on this functionality right now. Our service will allow to post images from the local computer and return the link on them that you will be able to use. You will be able to re-use your own service with our UI.

https://surveyjs.answerdesk.io/ticket/details/T969

Product
survey-creator
Type
Enhancement
Description
onElementAllowOptions 'undefined' error

Are you requesting a feature, reporting a bug or ask a question?

Bug

What is the current behavior?

image

How would you reproduce the current behavior (if this is a bug)?

I opened one of the samples in Plunker, and added code as below: image

I can see the same error as above in console. (Above error is from my code where creator = surveryCreator) I just copied the code as is from docs. I am not sure if this is the right way to do it, but I could not find any other documentation for the same.

Test code

surveyCreator.onElementAllowOptions.add(function (sender, options) {
        options.allowAddToToolbox = false;
    });

Specify your

  • browser: Chomre
  • editor version: 1.7.18

Added the new event.

  /**
   * The event is called on deleting a collection item from the Property Editor. For example: column in columns editor or item in choices and so on.
   * <br/> sender the survey creator object that fires the event
   * <br/> options.obj the survey object: Question, Panel, Page or Survey
   * <br/> options.property the collection property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties
   * <br/> options.propertyName the collection property name
   * <br/> options.collection the editing collection where deleting item is located. It is can be columns in the matrices or choices in dropdown question and so on.
   * <br/> options.item the collection item that we are going to delete
   * <br/> options.allowDelete a boolean value. It is true by default. Set it false to abondome the element removing from the collection
   */
  public onCollectionItemDeleting: Survey.Event<(sender: SurveyCreator, options: any) => any, any>;

Example of using, showing confirm dialog for deleting item in pages collection.

creator.onCollectionItemDeleting.add(function (sender, options) {
  if (options.propertyName == "pages") {
     options.allowDelete = confirm("Do you want to delete the page?");
 }
});
Product
survey-creator
Type
Enhancement
Description
Collapse/Expand Accordions for Property Editors
  /**
   * Collapse all property editor tabs (accordions) in properties panel
   */
  public collapseAllPropertyTabs(): void {
    this.getAccordionTabs().forEach((tab: SurveyElementEditorTabModel) => {
      tab.collapse();
    });
  }

  /**
   * Expand all property editor tabs (accordions) in properties panel
   */
  public expandAllPropertyTabs(): void {
    this.getAccordionTabs().forEach((tab: SurveyElementEditorTabModel) => {
      tab.expand();
    });
  }

  /**
   * Expand certain property editor tab (accordion) in properties panel
   * name - tab category name
   */
  public expandPropertyTab(name: string): void {
    this.getAccordionTabs().forEach((tab: SurveyElementEditorTabModel) => {
      if (tab.name !== name) return;
      tab.expand();
    });
  }

  /**
   * Collapse certain property editor tab (accordion) in properties panel
   * name - tab category name
   */
  public collapsePropertyTab(name: string): void {
    this.getAccordionTabs().forEach((tab: SurveyElementEditorTabModel) => {
      if (tab.name === name) tab.collapse();
    });
  }
}
Product
survey-creator
Type
Enhancement
Description
Allow to have different text for "Add New" button in Collection Property Editor

Currently we have the same localization string for "Choices", "Columns", "Pages" properties on adding a new item: "Add New". It requires, optionally, to have different localization string for these properties. Here is the example:

SurveyCreator.defaultStrings.pe["addNew@pages"] = "Add New Page";
SurveyCreator.defaultStrings.pe["addNew@columns"] = "Add New Column";
Product
survey-creator
Type
Enhancement
Description
Add new localization string for logic add "New Item"

ed.lg.addNewItem will be used for "New Item" in logic tab, if it is not empty. Otherwise "pe.addNew" localization string will be used (as in previous versions < 1.7.19).

Product
survey-creator
Type
Enhancement
Description
Focus first property editor on accordion tab expanded

Instead of focusing the accordion header we need to focus the first property editor in this tab.

By default, we do not allow to delete the current page. We can optionally allow it by using the following code:

creator.onCanDeleteItem.add(function (sender, options) {
  if (options.item.getType() == "page") {
    options.canDelete = true;
  }
});

Version: v1.7.18, released at Sunday, July 5, 2020, Total Issue Count: 8

Product Type Description
survey-library Enhancement Create a read-only calculated custom property

The following code should introduce a pages property into page class.

      Survey.Serializer.addProperty("page", {
        name: "pages:surveypages",
        category: "general",
        onGetValue: function (obj) {
          return !!obj && !!obj.survey ? obj.survey.pages : [];
        },
        onSetValue: function (obj) {
          //Do nothing
        },
        isSerializable: false
      });
survey-library BreakingChange Compare two undefined values with "less or equal"/"greater or equal" operators

We have the following expression " <= ", " <= ". If two values ( and ) are undefined then we return false, since JavaScript returns false for undefined <= undefined. However, our expression {v1} = {v2} will return true for undefined values, as well as JavaScript will return true. We decided to return true for undefined values for "less or equal"/"greater or equal" operators. Returning false, confused end-user, non-developers.

survey-library Enhancement Add isCompleteOnTrigger option into onCompleting and onCompleted events

If complete trigger was successfully performed and survey was completed based on this trigger then options.isCompleteOnTrigger is true in onCompleting and onCompleted events.

survey-creator Bug SurveyPropertyEditorFactory.registerCustomEditor doesn't work
survey-creator Bug Cannot switch between validators (and triggers in Survey Logic)
survey-creator Bug Survey Pages Property Editor: survey.currentPage changed on dragging the current page

The survey.currentPage is changing on dragging/changing order of the currentPage. It happens because we are removing the page from the list and then insert it back with another index. As result on removing, the survey founds that the current page was removed and change the current page on the next one. We should block the chaning survey current page on page re-ordering in the Survey Pages Property Editor.

survey-creator Enhancement Hide "Remove all" items button from Survey Pages Property Editor

We should not have "Remove all" button in the Survey Pages Property Editor.

survey-creator Enhancement Allow to show Pages Property Editor on Page Pane

And allow to customize the column list. Here is the required code:

      Survey.Serializer.addProperty("page", {
        name: "pages:surveypages",
        className: "page",
        category: "general",
        displayName: "Page order",
        onGetValue: function (obj) {
          return !!obj && !!obj.survey ? obj.survey.pages : [];
        },
        onSetValue: function (obj) {
          //Do nothing
        },
        isSerializable: false,
      });
      SurveyCreator.SurveyQuestionEditorDefinition.definition["page@page"] = {
        properties: ["name"],
      };

Version: v1.7.18, released at Sunday, July 5, 2020, Total Issue Count: 8

Product
survey-library
Type
Enhancement
Description
Create a read-only calculated custom property

The following code should introduce a pages property into page class.

      Survey.Serializer.addProperty("page", {
        name: "pages:surveypages",
        category: "general",
        onGetValue: function (obj) {
          return !!obj && !!obj.survey ? obj.survey.pages : [];
        },
        onSetValue: function (obj) {
          //Do nothing
        },
        isSerializable: false
      });
Product
survey-library
Type
BreakingChange
Description
Compare two undefined values with "less or equal"/"greater or equal" operators

We have the following expression " <= ", " <= ". If two values ( and ) are undefined then we return false, since JavaScript returns false for undefined <= undefined. However, our expression {v1} = {v2} will return true for undefined values, as well as JavaScript will return true. We decided to return true for undefined values for "less or equal"/"greater or equal" operators. Returning false, confused end-user, non-developers.

Product
survey-library
Type
Enhancement
Description
Add isCompleteOnTrigger option into onCompleting and onCompleted events

If complete trigger was successfully performed and survey was completed based on this trigger then options.isCompleteOnTrigger is true in onCompleting and onCompleted events.

Product
survey-creator
Type
Bug
Description
SurveyPropertyEditorFactory.registerCustomEditor doesn't work
Product
survey-creator
Type
Bug
Description
Cannot switch between validators (and triggers in Survey Logic)

The survey.currentPage is changing on dragging/changing order of the currentPage. It happens because we are removing the page from the list and then insert it back with another index. As result on removing, the survey founds that the current page was removed and change the current page on the next one. We should block the chaning survey current page on page re-ordering in the Survey Pages Property Editor.

Product
survey-creator
Type
Enhancement
Description
Hide "Remove all" items button from Survey Pages Property Editor

We should not have "Remove all" button in the Survey Pages Property Editor.

Product
survey-creator
Type
Enhancement
Description
Allow to show Pages Property Editor on Page Pane

And allow to customize the column list. Here is the required code:

      Survey.Serializer.addProperty("page", {
        name: "pages:surveypages",
        className: "page",
        category: "general",
        displayName: "Page order",
        onGetValue: function (obj) {
          return !!obj && !!obj.survey ? obj.survey.pages : [];
        },
        onSetValue: function (obj) {
          //Do nothing
        },
        isSerializable: false,
      });
      SurveyCreator.SurveyQuestionEditorDefinition.definition["page@page"] = {
        properties: ["name"],
      };

Version: v1.7.17, released at Thursday, July 2, 2020, Total Issue Count: 7

Product Type Description
survey-library Bug Matrix Question answered class is not coming while loading the saved data.

sv-question__title--answer is not loading while loading the survey with the saved data.

survey-library Bug skip trigger doesn't focus correctly question on the next page in react and vue

react and vue requires to call focusing question input with delay (another thread) after changing the current page, since the rendering happens not immediately and coherently for these libraries.

This bug requries functional (E2E) test.

survey-library Enhancement Allow to override the default confirm browser dialog

We are using the standard browser dialog for deleting operation in matrix dynamic or panel dynamic. Some developers need to override it. Here is the code that can do it from v1.7.17

Survey.settings.confirmActionFunc = function (message) {
   //Call your own function and return true to confirm the action or false otherwise
   return confirm("Test: " + message);
};
survey-creator Bug Undo via ctrl+z works when focus inside text input
  1. Go to https://surveyjs.io/create-survey
  2. Add any two questions
  3. Go to properties of first question
  4. Type some title without blur focus
  5. Press ctrl+z
  6. ???
  7. Missing not only last title symbol but second question too

Possible solution: disable possibility to undo survey when focus inside text input

survey-creator Bug Survey and page title inplace editors can't be used via keyboard if title is entered

See the https://surveyjs.answerdesk.io/ticket/details/t4564/not-able-to-edit-title-and-description-of-survey thread for more details:

After editing title or description of survey for first time, one is not able to move focus to title and description by pressing tab key so that one is not able to edit title/description again by keyboard tab flow.

survey-creator Bug qestion validators property editor doesn't load previous created values

The following JSON will bring error on editing validators in question "q1".

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "q1",
     "validators": [
      {
       "type": "email"
      }
     ]
    }
   ]
  }
 ]
}
survey-creator Bug otherText property doesn't show in matrix colum when hasOther is set

The issue was created in SurveyJS support desk.

Version: v1.7.17, released at Thursday, July 2, 2020, Total Issue Count: 7

sv-question__title--answer is not loading while loading the survey with the saved data.

react and vue requires to call focusing question input with delay (another thread) after changing the current page, since the rendering happens not immediately and coherently for these libraries.

This bug requries functional (E2E) test.

Product
survey-library
Type
Enhancement
Description
Allow to override the default confirm browser dialog

We are using the standard browser dialog for deleting operation in matrix dynamic or panel dynamic. Some developers need to override it. Here is the code that can do it from v1.7.17

Survey.settings.confirmActionFunc = function (message) {
   //Call your own function and return true to confirm the action or false otherwise
   return confirm("Test: " + message);
};
Product
survey-creator
Type
Bug
Description
Undo via ctrl+z works when focus inside text input
  1. Go to https://surveyjs.io/create-survey
  2. Add any two questions
  3. Go to properties of first question
  4. Type some title without blur focus
  5. Press ctrl+z
  6. ???
  7. Missing not only last title symbol but second question too

Possible solution: disable possibility to undo survey when focus inside text input

See the https://surveyjs.answerdesk.io/ticket/details/t4564/not-able-to-edit-title-and-description-of-survey thread for more details:

After editing title or description of survey for first time, one is not able to move focus to title and description by pressing tab key so that one is not able to edit title/description again by keyboard tab flow.

The following JSON will bring error on editing validators in question "q1".

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "q1",
     "validators": [
      {
       "type": "email"
      }
     ]
    }
   ]
  }
 ]
}
Product
survey-creator
Type
Bug
Description
otherText property doesn't show in matrix colum when hasOther is set

The issue was created in SurveyJS support desk.

Version: v1.7.16, released at Tuesday, June 30, 2020, Total Issue Count: 14

Product Type Description
survey-library Bug Survey-knockout: the "survey" component isn't rendered
survey-library Bug Multiple Text question with several requried items doesn't work correctly when checkErrorsMode is "onValueChanged"

The following JSON doesn't work as expected. It shows error after entering the first item.

{
    checkErrorsMode: "onValueChanged",
    questions: [
        {
            type: "multipletext",
            name: "q1",
            items: [
                {
                    name: "item1",
                    isRequired: true
                }, {
                    name: "item2",
                    isRequired: true
                }, {
                    name: "item3",
                    isRequired: true
                }
            ]
        }
    ]
}
survey-library Bug Matrix dynamic/dropdown with several requried columns doesn't work correctly when checkErrorsMode is "onValueChanged"

The following JSON will show several errors on changing one cell in the matrix.

{
 "checkErrorsMode": "onValueChanged",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdynamic",
     "name": "question1",
     "columns": [
      {
       "name": "Column 1",
       "isRequired": true
      },
      {
       "name": "Column 2",
       "isRequired": true
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ]
    }
   ]
  }
 ]
}
survey-library Enhancement Persian localization update version 1.7.15
import { surveyLocalization } from "../surveyStrings";

export var persianSurveyStrings = {
  pagePrevText: "قبلی",
  pageNextText: "بعدی",
  completeText: "تکمیل",
  previewText: "پیش نمایش",
  editText: "ویرایش",
  startSurveyText: "شروع",
  otherItemText: "دیگر(توضیح)",
  noneItemText: "هیچ",
  selectAllItemText: "انتخاب همه",
  progressText: "صفحه {0} از {1}",
  panelDynamicProgressText: "مورد {0} از {1}",
  questionsProgressText: "تعداد پاسخ {0}/{1} سوال",
  emptySurvey: "صفحه ای یا گزینه ای برای این پرسشنامه موجود نیست.",
  completingSurvey: "از شما بابت تکمیل این پرسشنامه متشکریم",
  completingSurveyBefore:
    "به نظر می رسد هم هم اکنون پرسشنامه را تکمیل کرده اید.",
  loadingSurvey: "درحال ایجاد پرسشنامه",
  optionsCaption: "انتخاب کنید...",
  value: "مقدار",
  requiredError: "لطفا به سوال پاسخ دهید",
  requiredInAllRowsError: "لطفا به تمام سطر های سوالات پاسخ دهید",
  requiredInAllRowsError: "لطفا سوالات تمام سطرها را پاسخ دهید.",
  numericError: "مقدار باید عددی باشد",
  textMinLength: "لطفا حداقل  {0} حرف وارد کنید",
  textMaxLength: "لطفا کمتر از  {0} حرف وارد کنید.",
  textMinMaxLength: "لطفا بیشتر از  {0} حرف و کمتر از {1} حرف وارد کنید.",
  minRowCountError: "لطفا حداقل {0} سطر وارد کنید.",
  minSelectError: "حداقل {0} انتخاب کنید.",
  maxSelectError: "لطفا بیشتر از  {0} انتخاب کنید.",
  numericMinMax:
   "'{0}' باید بین {1} و {2} باشد",
  numericMin: "'{0}' بزرگتر مساوی {1} باشد",
  numericMax: "'{0}' باید کوچکتر یا مساوی {1} باشد",
  invalidEmail: "لطفا ایمیل صحیح درج کنید",
  invalidExpression: "عبارت: {0} پاسخ باید 'true' باشد.",
  urlRequestError: "درخواست با خطا روبرو شد: '{0}'. {1}",
  urlGetChoicesError:
   "درخواست مسیری خالی بازگشت داده یا مسیر درست تنظیم نشده",
  exceedMaxSize: "بیشترین حجم مجاز فایل: {0}",
  otherRequiredError: "مقدار 'دیگر' را وارد کنید",
  uploadingFile:
   "فایل در حال آیلود است. لطفا صبر کنید.",
  loadingFile: "بارگیری...",
  chooseFile: "انتخاب فایل(ها)...",
  noFileChosen: "هیچ فایلی انتخاب نشده",
  confirmDelete: "آیا مایل به حذف این ردیف هستید؟",
  keyDuplicationError: "این مقدار باید غیر تکراری باشد",
  addColumn: "ستون جدید",
  addRow: "سطر جدید",
  removeRow: "حذف",
  addPanel: "جدید",
  removePanel: "حذف",
  choices_Item: "آیتم",
  matrix_column: "ستون",
  matrix_row: "سطر",
  savingData: "نتایج در حال ذخیره سازی در سرور است",
  savingDataError: "خطایی در ذخیره سازی نتایج رخ داده است",
  savingDataSuccess: "نتایج با موفقیت ذخیره شد",
  saveAgainButton: "مجدد تلاش کنید"
  timerMin: "دقیقه",
  timerSec: "ثانیه",
  timerSpentAll: "شما مدت {0} در این صفحه و مدت {1} را در مجموع سپری کرده اید.",
  timerSpentPage: "شما مدت {0} را در این صفحه سپری کرده اید.",
  timerSpentSurvey: "شما مدت {0} را در مجموع سپری کرده اید.",
  timerLimitAll:
    "شما مدت {0} از {1} در این صفحه و مدت {2} از {3} را در مجموع سپری کرده اید.",
  timerLimitPage: "شما مدت {0} از {1} را در این صفحه سپری کرده اید.",
  timerLimitSurvey: "شما مدت {0} از {1} را در مجموع سپری کرده اید.",
  cleanCaption: "پاکسازی",
  clearCaption: "خالی کردن",
  chooseFileCaption: "انتخاب فایل",
  removeFileCaption: "حذف این فایل",
  booleanCheckedLabel: "بله",
  booleanUncheckedLabel: "خیر",
  confirmRemoveFile: "آیا میخواهید این فایل را پاک کنید: {0}?",
  confirmRemoveAllFiles: "آیا میخواهید تمام فایل ها را پاک کنید?",
  questionTitlePatternText: "عنوان سوال",
};
surveyLocalization.locales["fa"] = persianSurveyStrings;
surveyLocalization.localeNames["fa"] = "فارْسِى";

survey-library Bug page.visibleIndex is not updated if visiblity is changed based on elements inside the page

If the page becomes visible/invisible based on a question/questions inside it, then page.visibleIndex becomes incorrect. Page is invisible, regardless page.visibile and page.visibleIf properties, if all elements inside this page are invisible. It leads to an issue when isNext/isPrev property in survey.onCurrentPageChanging/survey.onCurrentPageChanged events are incorrect. Here is the related ticket on SurveyJS support desk.

survey-library Bug Wrong layout in matrix dropdown/dynamic if dropdown column hasOther turn on in knockout

Please try the following JSON:

{
"elements": [
    {
     "type": "matrixdynamic",
     "name": "question5",
     "columns": [
      {
       "name": "Column 1",
       "cellType": "dropdown",
       "hasOther": true
      },
      {
       "name": "Column 2"
      },
      {
       "name": "Column 3"
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ]
    }
   ]
}

You will see that cell questions in the first column are rendering not in the line with other questions in the row.

survey-creator Bug Bug in Custom Property Editor sample online

The ckeditor seems to be rendering twice for each property that is being replaced in the online sample code. (Title, Description Html) https://surveyjs.io/Examples/Survey-Creator/?id=ckeditorpropertyeditor&theme=bootstrap

I didn't initially notice it, because I thought it was supposed to be the same field twice, but saw it in my code (based on the sample) and they are indeed duplicates.

Seems like it could be a knockout binding issue, but I don't have enough expertise in knockout to trace it down

Great job on Survey.js BTW. I am planning on buying a license next week. Marc

survey-creator Enhancement Hide the "questionStartIndex" property of a survey if "showQuestionNumbers" is set to "off"
survey-creator Enhancement Add Survey Pages property Editor

Some developers remove pages tabs from the Creator and use Page Selector dropdown only. In this case, end users could not change the pages order. We need Pages Property Editor to allow them to do it.

survey-creator Bug onPropertyAfterRender event doesn't work

using this event throw a error in the console

creator.onPropertyAfterRender.add( ()=>{} )
survey-creator Enhancement [Accessibility Issue] [Survey Designer][Property Pane]: remove option from choices in property pane doesn't read it as remove button
survey-creator Enhancement Missing label for the object selector dropdown in properties panel
survey-analytics Enhancement How to hide 'hide button' and tool bar line all?

Thanks. 1.7.7. works perfectly. And one more question.

How to hide 'hide button' and tool bar line all?

Screen Shot 2020-05-20 at 4 11 36 PM

Originally posted by @kryptojet in https://github.com/surveyjs/survey-analytics/issues/28#issuecomment-631285583

survey-analytics Enhancement Upgrade Webpack to version 4.X

Version: v1.7.16, released at Tuesday, June 30, 2020, Total Issue Count: 14

Product
survey-library
Type
Bug
Description
Survey-knockout: the "survey" component isn't rendered

The following JSON doesn't work as expected. It shows error after entering the first item.

{
    checkErrorsMode: "onValueChanged",
    questions: [
        {
            type: "multipletext",
            name: "q1",
            items: [
                {
                    name: "item1",
                    isRequired: true
                }, {
                    name: "item2",
                    isRequired: true
                }, {
                    name: "item3",
                    isRequired: true
                }
            ]
        }
    ]
}

The following JSON will show several errors on changing one cell in the matrix.

{
 "checkErrorsMode": "onValueChanged",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdynamic",
     "name": "question1",
     "columns": [
      {
       "name": "Column 1",
       "isRequired": true
      },
      {
       "name": "Column 2",
       "isRequired": true
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ]
    }
   ]
  }
 ]
}
Product
survey-library
Type
Enhancement
Description
Persian localization update version 1.7.15
import { surveyLocalization } from "../surveyStrings";

export var persianSurveyStrings = {
  pagePrevText: "قبلی",
  pageNextText: "بعدی",
  completeText: "تکمیل",
  previewText: "پیش نمایش",
  editText: "ویرایش",
  startSurveyText: "شروع",
  otherItemText: "دیگر(توضیح)",
  noneItemText: "هیچ",
  selectAllItemText: "انتخاب همه",
  progressText: "صفحه {0} از {1}",
  panelDynamicProgressText: "مورد {0} از {1}",
  questionsProgressText: "تعداد پاسخ {0}/{1} سوال",
  emptySurvey: "صفحه ای یا گزینه ای برای این پرسشنامه موجود نیست.",
  completingSurvey: "از شما بابت تکمیل این پرسشنامه متشکریم",
  completingSurveyBefore:
    "به نظر می رسد هم هم اکنون پرسشنامه را تکمیل کرده اید.",
  loadingSurvey: "درحال ایجاد پرسشنامه",
  optionsCaption: "انتخاب کنید...",
  value: "مقدار",
  requiredError: "لطفا به سوال پاسخ دهید",
  requiredInAllRowsError: "لطفا به تمام سطر های سوالات پاسخ دهید",
  requiredInAllRowsError: "لطفا سوالات تمام سطرها را پاسخ دهید.",
  numericError: "مقدار باید عددی باشد",
  textMinLength: "لطفا حداقل  {0} حرف وارد کنید",
  textMaxLength: "لطفا کمتر از  {0} حرف وارد کنید.",
  textMinMaxLength: "لطفا بیشتر از  {0} حرف و کمتر از {1} حرف وارد کنید.",
  minRowCountError: "لطفا حداقل {0} سطر وارد کنید.",
  minSelectError: "حداقل {0} انتخاب کنید.",
  maxSelectError: "لطفا بیشتر از  {0} انتخاب کنید.",
  numericMinMax:
   "'{0}' باید بین {1} و {2} باشد",
  numericMin: "'{0}' بزرگتر مساوی {1} باشد",
  numericMax: "'{0}' باید کوچکتر یا مساوی {1} باشد",
  invalidEmail: "لطفا ایمیل صحیح درج کنید",
  invalidExpression: "عبارت: {0} پاسخ باید 'true' باشد.",
  urlRequestError: "درخواست با خطا روبرو شد: '{0}'. {1}",
  urlGetChoicesError:
   "درخواست مسیری خالی بازگشت داده یا مسیر درست تنظیم نشده",
  exceedMaxSize: "بیشترین حجم مجاز فایل: {0}",
  otherRequiredError: "مقدار 'دیگر' را وارد کنید",
  uploadingFile:
   "فایل در حال آیلود است. لطفا صبر کنید.",
  loadingFile: "بارگیری...",
  chooseFile: "انتخاب فایل(ها)...",
  noFileChosen: "هیچ فایلی انتخاب نشده",
  confirmDelete: "آیا مایل به حذف این ردیف هستید؟",
  keyDuplicationError: "این مقدار باید غیر تکراری باشد",
  addColumn: "ستون جدید",
  addRow: "سطر جدید",
  removeRow: "حذف",
  addPanel: "جدید",
  removePanel: "حذف",
  choices_Item: "آیتم",
  matrix_column: "ستون",
  matrix_row: "سطر",
  savingData: "نتایج در حال ذخیره سازی در سرور است",
  savingDataError: "خطایی در ذخیره سازی نتایج رخ داده است",
  savingDataSuccess: "نتایج با موفقیت ذخیره شد",
  saveAgainButton: "مجدد تلاش کنید"
  timerMin: "دقیقه",
  timerSec: "ثانیه",
  timerSpentAll: "شما مدت {0} در این صفحه و مدت {1} را در مجموع سپری کرده اید.",
  timerSpentPage: "شما مدت {0} را در این صفحه سپری کرده اید.",
  timerSpentSurvey: "شما مدت {0} را در مجموع سپری کرده اید.",
  timerLimitAll:
    "شما مدت {0} از {1} در این صفحه و مدت {2} از {3} را در مجموع سپری کرده اید.",
  timerLimitPage: "شما مدت {0} از {1} را در این صفحه سپری کرده اید.",
  timerLimitSurvey: "شما مدت {0} از {1} را در مجموع سپری کرده اید.",
  cleanCaption: "پاکسازی",
  clearCaption: "خالی کردن",
  chooseFileCaption: "انتخاب فایل",
  removeFileCaption: "حذف این فایل",
  booleanCheckedLabel: "بله",
  booleanUncheckedLabel: "خیر",
  confirmRemoveFile: "آیا میخواهید این فایل را پاک کنید: {0}?",
  confirmRemoveAllFiles: "آیا میخواهید تمام فایل ها را پاک کنید?",
  questionTitlePatternText: "عنوان سوال",
};
surveyLocalization.locales["fa"] = persianSurveyStrings;
surveyLocalization.localeNames["fa"] = "فارْسِى";

If the page becomes visible/invisible based on a question/questions inside it, then page.visibleIndex becomes incorrect. Page is invisible, regardless page.visibile and page.visibleIf properties, if all elements inside this page are invisible. It leads to an issue when isNext/isPrev property in survey.onCurrentPageChanging/survey.onCurrentPageChanged events are incorrect. Here is the related ticket on SurveyJS support desk.

Please try the following JSON:

{
"elements": [
    {
     "type": "matrixdynamic",
     "name": "question5",
     "columns": [
      {
       "name": "Column 1",
       "cellType": "dropdown",
       "hasOther": true
      },
      {
       "name": "Column 2"
      },
      {
       "name": "Column 3"
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ]
    }
   ]
}

You will see that cell questions in the first column are rendering not in the line with other questions in the row.

Product
survey-creator
Type
Bug
Description
Bug in Custom Property Editor sample online

The ckeditor seems to be rendering twice for each property that is being replaced in the online sample code. (Title, Description Html) https://surveyjs.io/Examples/Survey-Creator/?id=ckeditorpropertyeditor&theme=bootstrap

I didn't initially notice it, because I thought it was supposed to be the same field twice, but saw it in my code (based on the sample) and they are indeed duplicates.

Seems like it could be a knockout binding issue, but I don't have enough expertise in knockout to trace it down

Great job on Survey.js BTW. I am planning on buying a license next week. Marc

Product
survey-creator
Type
Enhancement
Description
Add Survey Pages property Editor

Some developers remove pages tabs from the Creator and use Page Selector dropdown only. In this case, end users could not change the pages order. We need Pages Property Editor to allow them to do it.

Product
survey-creator
Type
Bug
Description
onPropertyAfterRender event doesn't work

using this event throw a error in the console

creator.onPropertyAfterRender.add( ()=>{} )
Product
survey-creator
Type
Enhancement
Description
Missing label for the object selector dropdown in properties panel
Product
survey-analytics
Type
Enhancement
Description
How to hide 'hide button' and tool bar line all?

Thanks. 1.7.7. works perfectly. And one more question.

How to hide 'hide button' and tool bar line all?

Screen Shot 2020-05-20 at 4 11 36 PM

Originally posted by @kryptojet in https://github.com/surveyjs/survey-analytics/issues/28#issuecomment-631285583

Product
survey-analytics
Type
Enhancement
Description
Upgrade Webpack to version 4.X

Version: v1.7.15, released at Friday, June 26, 2020, Total Issue Count: 2

Product Type Description
survey-creator Enhancement Hide the hideNumber property if showQuestionNumbers is set to false on parent or survey level
survey-creator Enhancement Allow to change the category for existing properties

The following code should change the property "name" category from "general" to "data" and make this property first in the "Data" tab.

var nameProperty = Survey.Serializer.findProperty("question", "name");
nameProperty.category = "data";
newProperty.visibleIndex = 0;

The code should be executed before SurveyJS Creator constructor.

Version: v1.7.15, released at Friday, June 26, 2020, Total Issue Count: 2

Product
survey-creator
Type
Enhancement
Description
Allow to change the category for existing properties

The following code should change the property "name" category from "general" to "data" and make this property first in the "Data" tab.

var nameProperty = Survey.Serializer.findProperty("question", "name");
nameProperty.category = "data";
newProperty.visibleIndex = 0;

The code should be executed before SurveyJS Creator constructor.

Version: v1.7.14, released at Thursday, June 25, 2020, Total Issue Count: 4

Version: v1.7.14, released at Thursday, June 25, 2020, Total Issue Count: 4

Product
survey-creator
Type
Enhancement
Description
Missing label for the page selection dropdown
Product
survey-creator
Type
Bug
Description
Title font size becomes small during editing via inplace editor

See the picture below:

image

Product
survey-creator
Type
Bug
Description
matrix dynamic Columns edit button not displaying

See the attached image:

image

Version: v1.7.13, released at Wednesday, June 24, 2020, Total Issue Count: 16

Product Type Description
survey-library Bug Min/ Max Function not working properly when there is zero value

Are you requesting a feature, reporting a bug or asking a question?

Possible bug

What is the current behaviour?

  1. Min/ Max function, when used to compare an 'expression' type question, doesn't yield expected results. Details:
  1. The min/max function returns the param to be compared with when the 'expression' question is yet to get an initial value (owing to lack of inputs) instead of returning correct result(screenshot1)
  2. When compared with a zero, min/ max function returns the param to be compared with instead of the correct result (screenshot 2)

What is the expected behaviour?

In 1a, would expect a 'zero' or 'null' or 'undefined' to be returned In 1b, the correct result.

How would you reproduce the current behavior (if this is a bug)?

Pl, see the att code.

Provide the test code and the tested page URL (if applicable)

Tested page URL:

Test code

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "question1",
     "title": "Enter Number 1",
     "inputType": "number"
    },
    {
     "type": "text",
     "name": "question2",
     "title": "Enter Number 2",
     "inputType": "number"
    },
    {
     "type": "text",
     "name": "question3",
     "title": "Enter Number 3",
     "inputType": "number"
    },
    {
     "type": "expression",
     "name": "question4",
     "title": "Sum of numbers",
     "expression": "{question1}+ {question2} + {question3}",
     "commentText": "Other (describe)"
    },
    {
     "type": "expression",
     "name": "question5",
     "title": "Max function test",
     "expression": "max({question4}, 200)",
     "displayStyle": "decimal",
     "maximumFractionDigits": 0,
     "minimumFractionDigits": 0,
     "commentText": "Other (describe)"
    },
    {
     "type": "expression",
     "name": "question6",
     "title": "Min function test",
     "expression": "min({question4}, 200)",
     "displayStyle": "decimal",
     "maximumFractionDigits": 0,
     "minimumFractionDigits": 0,
     "commentText": "Other (describe)"
    }
   ]
  }
 ]
}

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue):
  • surveyjs version:

image

image

survey-library Bug