Cart Licenses Contact Support Online Creator Log in/Register
Try
Buy
v 1.9.45

Version: v1.9.46, estimated release date is Tuesday, August 23, 2022, Total Issue Count: 4

Product Type Description
survey-library Bug hasOther and showInMultipleColumns options in matrix column doesn't work correctly

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

Bug

What is the current behavior?

When configuring a column in a matrixdropdown question to have an other option the text box is not shown when using the "show in multiple columns" option.

What is the expected behavior?

It should either work, or not be available as an option in the survey builder.

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://surveyjs.io/create-survey

Test code

{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdropdown",
     "name": "V001",
     "title": "Testvraag",
     "columns": [
      {
       "name": "1",
       "title": " ",
       "cellType": "checkbox",
       "showInMultipleColumns": true,
       "choices": [
        {
         "value": "1",
         "text": "Antwoord A"
        },
        {
         "value": "2",
         "text": "Antwoord B"
        },
        {
         "value": "3",
         "text": "Antwoord C"
        }
       ],
       "hasOther": true,
       "noneText": "Geen van bovenstaande",
       "otherText": "Anders, namelijk:"
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ],
     "rows": [
      {
       "value": "1",
       "text": "Aspect A"
      },
      {
       "value": "2",
       "text": "Aspect B"
      }
     ]
    }
   ]
  }
 ],
 "questionsOnPageMode": "questionPerPage"
}

Specify your

survey-library Bug setObjPropertyValue function JSONPropery class doens't work correctly for setting arrays.

The following code works incorrectly. It leads to errors in Creator V2. Here is the related issue

  Survey.Serializer.addProperty("question", { name: "tagbox:set", choices: [1, 2, 3, 4] });
  const question = new Survey.QuestionText("q1");
  const val = [1, 2];
  Serializer.setObjPropertyValue(question, "tagbox", val);
  //question.tagbox equals to [1, 2] now
  val.splice(0, 1);
  //question.tagbox equals to [2] now, but it should not be changed.
survey-library Bug A question dropdown selection is reset when using row count bindings and `cellType` expression

With the following survey expression, the question 1 dropdown selection is reset when checking an item for question 3.

{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "paneldynamic",
     "name": "question",
     "templateElements": [
      {
       "type": "panel",
       "name": "panel1",
       "elements": [
        {
         "type": "dropdown",
         "name": "question1",
         "choicesMin": 1,
         "choicesMax": 5
        },
        {
         "type": "matrixdynamic",
         "name": "question2",
         "bindings": {
          "rowCount": "question1"
         },
         "columns": [
          {
           "name": "Column 1",
           "cellType": "expression",
           "expression": "'Row ' + {rowIndex}"
          },
          {
           "name": "Column 2"
          },
          {
           "name": "Column 3"
          }
         ],
         "choices": [
          1,
          2,
          3,
          4,
          5
         ],
         "allowAddRows": false,
         "allowRemoveRows": false,
         "rowCount": 0
        }
       ]
      },
      {
       "type": "checkbox",
       "name": "question3",
       "choices": [
        "item1",
        "item2",
        "item3"
       ]
      }
     ],
     "allowAddPanel": false,
     "allowRemovePanel": false,
     "panelCount": 1
    },
    {
     "type": "panel",
     "name": "panel2"
    }
   ]
  }
 ]
}

A complete sample is available at https://plnkr.co/edit/blLZR0Qy5u3K1DKh.

Attachments DemoT10358.mp4.

https://user-images.githubusercontent.com/22372972/184880372-13641448-4da4-4df4-a35b-ebc3047397a5.mp4

The issue has been originally reported at T10358 - rowCount issue in DynamicMatrix when using expressions in columns.

survey-creator Bug survey creator tagbox property does not save all questions changes

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

reporting a bug

What is the current behavior?

When adding a tagbox property to question in survery creator, GUI will only save the latest tagged question, and removes the previous tagged questions that was done before.

What is the expected behavior?

All edited questions that gets tagged with tagbox should keep their tags repectively

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

Add a tagbox property to the creator instance like so:

Survey.Serializer.addProperty("question", {
            name: "tagbox:set",
            choices: ["one", "two", "three"],
            category: "general"
});

Then try to edit a question and add a tag to the question from the general tab in right property pane of the question, and without saving continue to add a tag to another question , then inspect the JSON preview, only the last edited question gets a tagbox property.

Screenshot_7

Here is a plunker: https://plnkr.co/edit/qighGGf3uvvIxais

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

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

Test code

Survey.Serializer.addProperty("question", {
            name: "tagbox:set",
            choices: ["one", "two", "three"],
            category: "general"
});

Specify your

  • browser: Firefox and chrome
  • editor version: latest

Version: v1.9.46, estimated release date is Tuesday, August 23, 2022, Total Issue Count: 4

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

Bug

What is the current behavior?

When configuring a column in a matrixdropdown question to have an other option the text box is not shown when using the "show in multiple columns" option.

What is the expected behavior?

It should either work, or not be available as an option in the survey builder.

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://surveyjs.io/create-survey

Test code

{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdropdown",
     "name": "V001",
     "title": "Testvraag",
     "columns": [
      {
       "name": "1",
       "title": " ",
       "cellType": "checkbox",
       "showInMultipleColumns": true,
       "choices": [
        {
         "value": "1",
         "text": "Antwoord A"
        },
        {
         "value": "2",
         "text": "Antwoord B"
        },
        {
         "value": "3",
         "text": "Antwoord C"
        }
       ],
       "hasOther": true,
       "noneText": "Geen van bovenstaande",
       "otherText": "Anders, namelijk:"
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ],
     "rows": [
      {
       "value": "1",
       "text": "Aspect A"
      },
      {
       "value": "2",
       "text": "Aspect B"
      }
     ]
    }
   ]
  }
 ],
 "questionsOnPageMode": "questionPerPage"
}

Specify your

The following code works incorrectly. It leads to errors in Creator V2. Here is the related issue

  Survey.Serializer.addProperty("question", { name: "tagbox:set", choices: [1, 2, 3, 4] });
  const question = new Survey.QuestionText("q1");
  const val = [1, 2];
  Serializer.setObjPropertyValue(question, "tagbox", val);
  //question.tagbox equals to [1, 2] now
  val.splice(0, 1);
  //question.tagbox equals to [2] now, but it should not be changed.

With the following survey expression, the question 1 dropdown selection is reset when checking an item for question 3.

{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "paneldynamic",
     "name": "question",
     "templateElements": [
      {
       "type": "panel",
       "name": "panel1",
       "elements": [
        {
         "type": "dropdown",
         "name": "question1",
         "choicesMin": 1,
         "choicesMax": 5
        },
        {
         "type": "matrixdynamic",
         "name": "question2",
         "bindings": {
          "rowCount": "question1"
         },
         "columns": [
          {
           "name": "Column 1",
           "cellType": "expression",
           "expression": "'Row ' + {rowIndex}"
          },
          {
           "name": "Column 2"
          },
          {
           "name": "Column 3"
          }
         ],
         "choices": [
          1,
          2,
          3,
          4,
          5
         ],
         "allowAddRows": false,
         "allowRemoveRows": false,
         "rowCount": 0
        }
       ]
      },
      {
       "type": "checkbox",
       "name": "question3",
       "choices": [
        "item1",
        "item2",
        "item3"
       ]
      }
     ],
     "allowAddPanel": false,
     "allowRemovePanel": false,
     "panelCount": 1
    },
    {
     "type": "panel",
     "name": "panel2"
    }
   ]
  }
 ]
}

A complete sample is available at https://plnkr.co/edit/blLZR0Qy5u3K1DKh.

Attachments DemoT10358.mp4.

https://user-images.githubusercontent.com/22372972/184880372-13641448-4da4-4df4-a35b-ebc3047397a5.mp4

The issue has been originally reported at T10358 - rowCount issue in DynamicMatrix when using expressions in columns.

Product
survey-creator
Type
Bug
Description
survey creator tagbox property does not save all questions changes

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

reporting a bug

What is the current behavior?

When adding a tagbox property to question in survery creator, GUI will only save the latest tagged question, and removes the previous tagged questions that was done before.

What is the expected behavior?

All edited questions that gets tagged with tagbox should keep their tags repectively

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

Add a tagbox property to the creator instance like so:

Survey.Serializer.addProperty("question", {
            name: "tagbox:set",
            choices: ["one", "two", "three"],
            category: "general"
});

Then try to edit a question and add a tag to the question from the general tab in right property pane of the question, and without saving continue to add a tag to another question , then inspect the JSON preview, only the last edited question gets a tagbox property.

Screenshot_7

Here is a plunker: https://plnkr.co/edit/qighGGf3uvvIxais

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

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

Test code

Survey.Serializer.addProperty("question", {
            name: "tagbox:set",
            choices: ["one", "two", "three"],
            category: "general"
});

Specify your

  • browser: Firefox and chrome
  • editor version: latest

Version: v1.9.45, released at Tuesday, August 16, 2022, Total Issue Count: 10

Product Type Description
survey-library Enhancement Bug: Dropdown search bar is visible when "searchEnabled" is set to false

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

Bug

What is the current behavior?

The dropdown search bar is visible when searchEnabled is set to false (with more than 10 choices).

What is the expected behavior?

The dropdown shouldn't display the search bar when searchEnabled is set to false.

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

Using the test page provided below, you'll notice that the search bar in the dropdown is visible even though searchEnabled is set to false in the survey json.

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

Tested page URL:

https://plnkr.co/edit/nFz6LbiR0UflYpnD

Test code

Survey.StylesManager.applyTheme("defaultV2");
var json = {
  "elements": [
    {
      "type": "dropdown",
      "name": "car",
      "choices": [
        "Ford",
        "Vauxhall",
        "Volkswagen",
        "Nissan",
        "Audi",
        "Mercedes-Benz",
        "BMW",
        "Peugeot",
        "Toyota",
        "Citroen",
        "Honda",
      ],
      "searchEnabled": false  
    }
  ]
};
window.survey = new Survey.Model(json);
survey.onComplete.add(function (sender) {
  document.querySelector('#surveyResult').textContent = "Result JSON:\n" + JSON.stringify(sender.data, null, 3);
});
var app = new Vue({
  el: '#surveyElement',
  data: {
    survey: survey
  }
});

Specify your

  • browser: Edge
  • browser version: 103.0.1264.71
  • surveyjs platform (angular or react or jquery or knockout or vue): vue
  • surveyjs version: 1.9.42
survey-library Bug Popup list in dropdown doesn't support localization

"Type to search..." string shows for all locales. "ListModel" class doesn't support localization.

survey-library Bug showQuestionNumbers should accept Boolean values

The name of the property suggests that it accepts Boolean values. However, it doesn't, and you won't find out about it until you look in the docs. I myself have been caught in this trap, and even created an issue, thinking that there's something wrong with parsing of Boolean values.

I suggest the following API:

showQuestionNumbers: true // the same as showQuestionNumbers: "on"
showQuestionNumbers: false // the same as showQuestionNumbers: "off"
survey-library Bug Composite component can't be used in matrices cells

We show composite component in matrices cell, but a cell value is not stored in the marix for this colum. Here is the simple example:

//Register a composite component
Survey.ComponentCollection.Instance.add({
    name: "customerinfo",
    elementsJSON: [
      { type: "text", name: "firstName" },
      { type: "text", name: "lastName" },
    ],
  });

Survey JSON:

{
    elements: [{
      type: "matrixdynamic",
      name: "matrix",
      columns: [
        { cellType: "customerinfo", name: "col1" },
      ]
    }]
  }

Matrix has two text questions in the cell, but the data is not stored. It should work correctly as for any other cell question.

survey-library Bug Buttons have different sizes in default theme and it modifications
survey-library Bug Carry forward for ranking question: use other item

If checkbox question hasOther property is set to true and this checkbox is used for carry forward functionality for a ranking question, then other value is not taken into account. Here is the JSON example:

{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "checkbox",
     "name": "smartphone-features",
     "title": "What smartphone features do you think are valuable?",
     "isRequired": true,
     "choices": [
      "Battery life",
      "Screen size",
      "Storage space",
      "Camera quality",
      "Durability",
      "Processor power",
      "Price"
     ],
     "choicesOrder": "asc",
     "hasOther": true,
     "colCount": 4
    },
    {
     "type": "ranking",
     "name": "best-smartphone-features",
     "visibleIf": "{smartphone-features.length} > 1",
     "title": "Please rank the smartphone features in order of importance:",
     "isRequired": true,
     "choicesFromQuestion": "smartphone-features",
     "choicesFromQuestionMode": "selected"
    }
   ]
  }
 ]
}

On selecting other and setting the text in checkbox question, this new value is not shows in visible choices for a ranking question.

survey-library Enhancement Automatically convert youtube url to embed for image question

If imageLink is set to "https://youtu.be/-5CdAup0o-I" then we should use url: "https://www.youtube.com/embed/-5CdAup0o-I". We should covert url automatically, since the most end-users do not know what the correct link should be.

survey-creator Enhancement New selectbase item numbering after item delete

We need item3 in case of two added items image

survey-creator Bug V2: settings.toolbox.defaultJSON doesn't apply on converting question

To reproduce use the following default JSON for radiogroup: settings.toolbox.defaultJSON["radiogroup"] = { choices: [1, 2, 3, 4, 5] }; After that drop radiogroup on surface (choices will be correct 1, 2, 3, 4, 5), then convert the question into "text" and convert to "radiogroup" again. Choices will be "item1", "item2" and "item3" instead of [1, 2, 3, 4, 5].

survey-creator Bug V2: Hide "Add Question" button on page if allowEdit set to false onElementAllowOperations event

The following code should remove buttons: "Delete", "Duplicate" and "Add Question" on the first page in Creator surface. Right now we do not remove "Add Question" buttons.

  creator.onElementAllowOperations.add((sender, options) => {
    if(options.obj.isPage) {
      const isFirstPage = sender.survey.pages.indexOf(options.obj) === 0;
      if(isFirstPage) {
        options.allowDelete = false;
        options.allowEdit = false;
        options.allowCopy = false;
      }
    }
  });

Version: v1.9.45, released at Tuesday, August 16, 2022, Total Issue Count: 10

Product
survey-library
Type
Enhancement
Description
Bug: Dropdown search bar is visible when "searchEnabled" is set to false

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

Bug

What is the current behavior?

The dropdown search bar is visible when searchEnabled is set to false (with more than 10 choices).

What is the expected behavior?

The dropdown shouldn't display the search bar when searchEnabled is set to false.

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

Using the test page provided below, you'll notice that the search bar in the dropdown is visible even though searchEnabled is set to false in the survey json.

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

Tested page URL:

https://plnkr.co/edit/nFz6LbiR0UflYpnD

Test code

Survey.StylesManager.applyTheme("defaultV2");
var json = {
  "elements": [
    {
      "type": "dropdown",
      "name": "car",
      "choices": [
        "Ford",
        "Vauxhall",
        "Volkswagen",
        "Nissan",
        "Audi",
        "Mercedes-Benz",
        "BMW",
        "Peugeot",
        "Toyota",
        "Citroen",
        "Honda",
      ],
      "searchEnabled": false  
    }
  ]
};
window.survey = new Survey.Model(json);
survey.onComplete.add(function (sender) {
  document.querySelector('#surveyResult').textContent = "Result JSON:\n" + JSON.stringify(sender.data, null, 3);
});
var app = new Vue({
  el: '#surveyElement',
  data: {
    survey: survey
  }
});

Specify your

  • browser: Edge
  • browser version: 103.0.1264.71
  • surveyjs platform (angular or react or jquery or knockout or vue): vue
  • surveyjs version: 1.9.42
Product
survey-library
Type
Bug
Description
Popup list in dropdown doesn't support localization

"Type to search..." string shows for all locales. "ListModel" class doesn't support localization.

Product
survey-library
Type
Bug
Description
showQuestionNumbers should accept Boolean values

The name of the property suggests that it accepts Boolean values. However, it doesn't, and you won't find out about it until you look in the docs. I myself have been caught in this trap, and even created an issue, thinking that there's something wrong with parsing of Boolean values.

I suggest the following API:

showQuestionNumbers: true // the same as showQuestionNumbers: "on"
showQuestionNumbers: false // the same as showQuestionNumbers: "off"
Product
survey-library
Type
Bug
Description
Composite component can't be used in matrices cells

We show composite component in matrices cell, but a cell value is not stored in the marix for this colum. Here is the simple example:

//Register a composite component
Survey.ComponentCollection.Instance.add({
    name: "customerinfo",
    elementsJSON: [
      { type: "text", name: "firstName" },
      { type: "text", name: "lastName" },
    ],
  });

Survey JSON:

{
    elements: [{
      type: "matrixdynamic",
      name: "matrix",
      columns: [
        { cellType: "customerinfo", name: "col1" },
      ]
    }]
  }

Matrix has two text questions in the cell, but the data is not stored. It should work correctly as for any other cell question.

Product
survey-library
Type
Bug
Description
Buttons have different sizes in default theme and it modifications
Product
survey-library
Type
Bug
Description
Carry forward for ranking question: use other item

If checkbox question hasOther property is set to true and this checkbox is used for carry forward functionality for a ranking question, then other value is not taken into account. Here is the JSON example:

{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "checkbox",
     "name": "smartphone-features",
     "title": "What smartphone features do you think are valuable?",
     "isRequired": true,
     "choices": [
      "Battery life",
      "Screen size",
      "Storage space",
      "Camera quality",
      "Durability",
      "Processor power",
      "Price"
     ],
     "choicesOrder": "asc",
     "hasOther": true,
     "colCount": 4
    },
    {
     "type": "ranking",
     "name": "best-smartphone-features",
     "visibleIf": "{smartphone-features.length} > 1",
     "title": "Please rank the smartphone features in order of importance:",
     "isRequired": true,
     "choicesFromQuestion": "smartphone-features",
     "choicesFromQuestionMode": "selected"
    }
   ]
  }
 ]
}

On selecting other and setting the text in checkbox question, this new value is not shows in visible choices for a ranking question.

Product
survey-library
Type
Enhancement
Description
Automatically convert youtube url to embed for image question

If imageLink is set to "https://youtu.be/-5CdAup0o-I" then we should use url: "https://www.youtube.com/embed/-5CdAup0o-I". We should covert url automatically, since the most end-users do not know what the correct link should be.

Product
survey-creator
Type
Enhancement
Description
New selectbase item numbering after item delete

We need item3 in case of two added items image

Product
survey-creator
Type
Bug
Description
V2: settings.toolbox.defaultJSON doesn't apply on converting question

To reproduce use the following default JSON for radiogroup: settings.toolbox.defaultJSON["radiogroup"] = { choices: [1, 2, 3, 4, 5] }; After that drop radiogroup on surface (choices will be correct 1, 2, 3, 4, 5), then convert the question into "text" and convert to "radiogroup" again. Choices will be "item1", "item2" and "item3" instead of [1, 2, 3, 4, 5].

The following code should remove buttons: "Delete", "Duplicate" and "Add Question" on the first page in Creator surface. Right now we do not remove "Add Question" buttons.

  creator.onElementAllowOperations.add((sender, options) => {
    if(options.obj.isPage) {
      const isFirstPage = sender.survey.pages.indexOf(options.obj) === 0;
      if(isFirstPage) {
        options.allowDelete = false;
        options.allowEdit = false;
        options.allowCopy = false;
      }
    }
  });

Version: v1.9.44, released at Tuesday, August 9, 2022, Total Issue Count: 3

Product
survey-library
Type
Enhancement
Description
Tagbox: add property specifying whether or not to hide selected items.
Product
survey-library
Type
Bug
Description
Dropdown doesn't clear item selection in the drop-down list
Product
survey-library
Type
Enhancement
Description
Add an easier ability to create a dropdown action

Version: v1.9.43, released at Wednesday, August 3, 2022, Total Issue Count: 10

Product Type Description
survey-library Enhancement Matrixdropdown: Fix default minimum column width

The default placeholder text should be fully visible. image

survey-library Bug goNextPageAutomatic property set to autogonext not working

It doesn't work when the property is setup in JSON. It works if you setup the value in code. Here is the example

survey-library Bug Share data between questions example for valuePropertyName fails under Angular, jQuery and Knockout

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

Bug

What is the current behavior?

Using the Share data between questions example on the SurveyJS website with Angular, jQuery or Knockout, clicking once on an unselected checkbox item on Page 2 (What car do you own?) does not check it (kinda need 2 or 3 clicks) and even when checked, the selected item is not displayed in the title of the subsequent question (Please describe your car), specifically "templateTitle": "Car: " does not work.

React and Vue doe not exhibit this issue.

What is the expected behavior?

Clicking the checkbox item checks it and that item name displayed in the title of the panel.

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

Using the provided SurveyJS example, Page 2 using Angular, jQuery or Knockout.

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

Tested page URL: https://surveyjs.io/Examples/Library?id=survey-shareddata

https://user-images.githubusercontent.com/18456/182078321-815ce5e1-8993-4dc4-9dc4-d89c80dc50d2.mov

Specify your

  • browser: Chrome and Safari
  • browser version: Chrome v103, Safari v15.6 (Mac OS X)
  • surveyjs platform (angular or react or jquery or knockout or vue): Angular, jQuery and Knockout exhibit the bug; React and Vue do not.
  • surveyjs version: latest (1.9.42)
survey-library Bug showQuestionNumbers property doesnt' work correctly in dynamic panel

On adding/deleting panels in dynamic panel question if "showQuestionNumbers" property set to "onPanel" or "onSurvey" then it doesnt' work correctly.

survey-library Bug React warning when using requiredIf on element in matrix and visibleIf/enableIf in columns

We should move code on generating cell question class names inside the cell. It is on matrix level right now. In this case rendering will not trigger state changes.

survey-creator Enhancement Logic tab: Filter unavailable items in dropdown menus

image

survey-creator Bug Panel / Panel dymanic + startWithNewLine selection styles issue
  1. setup json
{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "paneldynamic",
     "name": "paneldynamic1",
     "templateElements": [
      {
       "type": "text",
       "name": "text1"
      },
      {
       "type": "text",
       "name": "text2",
       "startWithNewLine": false
      }
     ]
    }
   ]
  }
 ]
}
  1. go to Designer tab and choose the text1 question (click)
  2. see image
survey-creator Bug Hidden Question Issue

Hidden questions have to be activated during the answering.

Screenshot 2022-07-21 at 18 04 05

survey-creator Bug Question panel on the popup have no border.

Screenshot 2022-07-21 at 15 16 15

survey-creator Enhancement V2: Property Editor "Question" should support creator.onGetObjectDisplayName event

There is no way to change the display text in the dropdown property editor on choosing a question from the question list. For example for "gotoName" property in the skip trigger. We should add a new reason: "property-editor" for this case.

Version: v1.9.43, released at Wednesday, August 3, 2022, Total Issue Count: 10

Product
survey-library
Type
Enhancement
Description
Matrixdropdown: Fix default minimum column width

The default placeholder text should be fully visible. image

Product
survey-library
Type
Bug
Description
goNextPageAutomatic property set to autogonext not working

It doesn't work when the property is setup in JSON. It works if you setup the value in code. Here is the example

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

Bug

What is the current behavior?

Using the Share data between questions example on the SurveyJS website with Angular, jQuery or Knockout, clicking once on an unselected checkbox item on Page 2 (What car do you own?) does not check it (kinda need 2 or 3 clicks) and even when checked, the selected item is not displayed in the title of the subsequent question (Please describe your car), specifically "templateTitle": "Car: " does not work.

React and Vue doe not exhibit this issue.

What is the expected behavior?

Clicking the checkbox item checks it and that item name displayed in the title of the panel.

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

Using the provided SurveyJS example, Page 2 using Angular, jQuery or Knockout.

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

Tested page URL: https://surveyjs.io/Examples/Library?id=survey-shareddata

https://user-images.githubusercontent.com/18456/182078321-815ce5e1-8993-4dc4-9dc4-d89c80dc50d2.mov

Specify your

  • browser: Chrome and Safari
  • browser version: Chrome v103, Safari v15.6 (Mac OS X)
  • surveyjs platform (angular or react or jquery or knockout or vue): Angular, jQuery and Knockout exhibit the bug; React and Vue do not.
  • surveyjs version: latest (1.9.42)
Product
survey-library
Type
Bug
Description
showQuestionNumbers property doesnt' work correctly in dynamic panel

On adding/deleting panels in dynamic panel question if "showQuestionNumbers" property set to "onPanel" or "onSurvey" then it doesnt' work correctly.

We should move code on generating cell question class names inside the cell. It is on matrix level right now. In this case rendering will not trigger state changes.

Product
survey-creator
Type
Enhancement
Description
Logic tab: Filter unavailable items in dropdown menus

image

Product
survey-creator
Type
Bug
Description
Panel / Panel dymanic + startWithNewLine selection styles issue
  1. setup json
{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "paneldynamic",
     "name": "paneldynamic1",
     "templateElements": [
      {
       "type": "text",
       "name": "text1"
      },
      {
       "type": "text",
       "name": "text2",
       "startWithNewLine": false
      }
     ]
    }
   ]
  }
 ]
}
  1. go to Designer tab and choose the text1 question (click)
  2. see image
Product
survey-creator
Type
Bug
Description
Hidden Question Issue

Hidden questions have to be activated during the answering.

Screenshot 2022-07-21 at 18 04 05

Product
survey-creator
Type
Bug
Description
Question panel on the popup have no border.

Screenshot 2022-07-21 at 15 16 15

There is no way to change the display text in the dropdown property editor on choosing a question from the question list. For example for "gotoName" property in the skip trigger. We should add a new reason: "property-editor" for this case.

Version: v1.9.42, released at Wednesday, July 27, 2022, Total Issue Count: 5

Product Type Description
survey-library Enhancement Hide "Next" button and show "Complete" if a complete trigger is going to be executed

When a user choose a question value that will trigger a complete trigger then "Next" button should be hidden and "Complete" button should be shown. Here is the JSON example:

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "radiogroup",
     "name": "question1",
     "choices": [
      "item1",
      "item2",
      "item3"
     ]
    }
   ]
  },
  {
   "name": "page2",
   "elements": [
    {
     "type": "text",
     "name": "question2"
    }
   ]
  }
 ],
 "triggers": [
  {
   "type": "complete",
   "expression": "{question1} = 'item1'"
  }
 ]
}

When a user choose "item1" for the first question then "Complete" button should be shown instead of "Next" button. When the value is cleared or another value is choosen then "Complete" button should be hidden and "Next" button should be shown.

survey-creator Bug Safari Add hovers to toolbar buttons

image

survey-creator Bug V2: visibleIf/enableIf for itemvalue (choices, row) doesn't have context in condition editor

If you are editing "visibleIf" property for a column choices then condition editor doesn't show "row.columnName" in question selector. For example the following visibleIf properties could not set in Creator:

{
     "type": "matrixdynamic",
     "name": "question2",
     "columns": [
      {
       "name": "Medium",
       "cellType": "dropdown",
       "choices": [
        "Road",
        "Water",
        "Air",
        "Rail"
       ]
      },
      {
       "name": "Mode",
       "cellType": "dropdown",
       "choices": [
        {
         "value": "average_lorry",
         "visibleIf": "{row.Medium} = 'Road'"
        },
        {
         "value": "small_lorry",
         "visibleIf": "{row.Medium} = 'Road'"
        },
        {
         "value": "overseas_container_ship",
         "visibleIf": "{row.Medium} = 'Water'"
        },
        {
         "value": "inland_waterways_barge",
         "visibleIf": "{row.Medium} = 'Water'"
        },
        {
         "value": "short_haul_flight",
         "visibleIf": "{row.Medium} = 'Air'"
        },
        {
         "value": "long_haul_flight",
         "visibleIf": "{row.Medium} = 'Air'"
        },
        {
         "value": "average_freight_train",
         "visibleIf": "{row.Medium} = 'Rail'"
        },
        {
         "value": "electric_freight_train",
         "visibleIf": "{row.Medium} = 'Rail'"
        }
       ]
      }
     ]
    }
survey-pdf Bug Html doesn't render in image mode in Firefox
survey-pdf Bug Table with colspan attribute doesn't render in standard mode

For detailed information see this ticket and this in the support center

Version: v1.9.42, released at Wednesday, July 27, 2022, Total Issue Count: 5

When a user choose a question value that will trigger a complete trigger then "Next" button should be hidden and "Complete" button should be shown. Here is the JSON example:

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "radiogroup",
     "name": "question1",
     "choices": [
      "item1",
      "item2",
      "item3"
     ]
    }
   ]
  },
  {
   "name": "page2",
   "elements": [
    {
     "type": "text",
     "name": "question2"
    }
   ]
  }
 ],
 "triggers": [
  {
   "type": "complete",
   "expression": "{question1} = 'item1'"
  }
 ]
}

When a user choose "item1" for the first question then "Complete" button should be shown instead of "Next" button. When the value is cleared or another value is choosen then "Complete" button should be hidden and "Next" button should be shown.

Product
survey-creator
Type
Bug
Description
Safari Add hovers to toolbar buttons

image

If you are editing "visibleIf" property for a column choices then condition editor doesn't show "row.columnName" in question selector. For example the following visibleIf properties could not set in Creator:

{
     "type": "matrixdynamic",
     "name": "question2",
     "columns": [
      {
       "name": "Medium",
       "cellType": "dropdown",
       "choices": [
        "Road",
        "Water",
        "Air",
        "Rail"
       ]
      },
      {
       "name": "Mode",
       "cellType": "dropdown",
       "choices": [
        {
         "value": "average_lorry",
         "visibleIf": "{row.Medium} = 'Road'"
        },
        {
         "value": "small_lorry",
         "visibleIf": "{row.Medium} = 'Road'"
        },
        {
         "value": "overseas_container_ship",
         "visibleIf": "{row.Medium} = 'Water'"
        },
        {
         "value": "inland_waterways_barge",
         "visibleIf": "{row.Medium} = 'Water'"
        },
        {
         "value": "short_haul_flight",
         "visibleIf": "{row.Medium} = 'Air'"
        },
        {
         "value": "long_haul_flight",
         "visibleIf": "{row.Medium} = 'Air'"
        },
        {
         "value": "average_freight_train",
         "visibleIf": "{row.Medium} = 'Rail'"
        },
        {
         "value": "electric_freight_train",
         "visibleIf": "{row.Medium} = 'Rail'"
        }
       ]
      }
     ]
    }
Product
survey-pdf
Type
Bug
Description
Html doesn't render in image mode in Firefox
Product
survey-pdf
Type
Bug
Description
Table with colspan attribute doesn't render in standard mode

For detailed information see this ticket and this in the support center

Version: v1.9.41, released at Wednesday, July 20, 2022, Total Issue Count: 9

Product Type Description
survey-library Bug Dropdown: If the element's text is very long, the popup will go beyond the visible area.

image

survey-library Bug Support old JSON when column has choices but doesn't have cellType set

The following JSON is incorrect:

      {
        type: "matrixdynamic",
        name: "q1",
        rowCount: 1,
        columns: [
          {
            name: "col1",
            choices: ["a", "b", "c", "d"]
          }
        ]
      }

It should have cellType set. However, this JSON works in previous versions. To support it, we should set cellType on JSON loading.

survey-library Bug Dropdown: set popup z-index to 1500
survey-library Enhancement A11Y aria allowed attr issue
survey-creator Enhancement Preview tab issues
  • top padding
  • do not use "!"
  • check "Preview Survey Again" text with Tech writer
  • panel corners
  • panel shadow
  • table header text align and borders
  • check other paddings, if need discuss with Mike image
survey-creator Bug V2: The ghost page is not created after moving a question from existing page into a ghost page

Steps to reproduce:

  1. Add a new question into Page1
  2. Move this question into ghost page. As result, Page2 is created and a question is added into it from Page1, but a new ghost page is not created.
survey-creator Bug V2: Adding a question to an empty survey from the toolbox does not use the `translations.ed.newPageName` property

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

Reporting a bug

What is the current behavior?

When you add a question to an empty survey form the toolbox. It will auto-create the first page with the name "page1" even if you set the translations property.

Adding via drag drop of toolbox, or the ghost page button works as expected.

What is the expected behavior?

The toolbox should name pages using the translations property

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

  1. Open https://plnkr.co/edit/xNnI1L4enxVsUizq
  2. Increase width of preview to show the toolbox
  3. Insert single input question.
  4. Select the page the single input was inserted into. It's name is "page1". [Bug]

  1. Delete the page and insert using drag drop from the toolbox, or using the ghost page's add question button.
  2. Select the Page > Settings. It is named "Page 1". [Expected behaviour]

Specify your

  • browser: Chrome
  • editor version: 1.9.40
survey-creator Bug Type Converter does not work on hover

image

survey-creator Bug onModified event not firing after json property is set to empty
  const creatorOptions = {};
  const creator = new SurveyCreator(creatorOptions);
  creator.JSON = {};
  creator.onModified.add((sender, options) => {
    console.log('IS MODIFIED')
  });

To reproduce: Add a question and on the console you will see a "modified" string signifying that the event was triggered. After this, change the Survey Title and you'll see that the event does not get fired.

https://surveyjs.answerdesk.io/ticket/details/t10050/survey-creator-issues https://surveyjs.answerdesk.io/ticket/details/t10042/onmodified-doesn-t-get-triggered-when-survey-title-is-changed-after-adding-a-question

Version: v1.9.41, released at Wednesday, July 20, 2022, Total Issue Count: 9

image

The following JSON is incorrect:

      {
        type: "matrixdynamic",
        name: "q1",
        rowCount: 1,
        columns: [
          {
            name: "col1",
            choices: ["a", "b", "c", "d"]
          }
        ]
      }

It should have cellType set. However, this JSON works in previous versions. To support it, we should set cellType on JSON loading.

Product
survey-library
Type
Bug
Description
Dropdown: set popup z-index to 1500
Product
survey-library
Type
Enhancement
Description
A11Y aria allowed attr issue
Product
survey-creator
Type
Enhancement
Description
Preview tab issues
  • top padding
  • do not use "!"
  • check "Preview Survey Again" text with Tech writer
  • panel corners
  • panel shadow
  • table header text align and borders
  • check other paddings, if need discuss with Mike image

Steps to reproduce:

  1. Add a new question into Page1
  2. Move this question into ghost page. As result, Page2 is created and a question is added into it from Page1, but a new ghost page is not created.

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

Reporting a bug

What is the current behavior?

When you add a question to an empty survey form the toolbox. It will auto-create the first page with the name "page1" even if you set the translations property.

Adding via drag drop of toolbox, or the ghost page button works as expected.

What is the expected behavior?

The toolbox should name pages using the translations property

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

  1. Open https://plnkr.co/edit/xNnI1L4enxVsUizq
  2. Increase width of preview to show the toolbox
  3. Insert single input question.
  4. Select the page the single input was inserted into. It's name is "page1". [Bug]

  1. Delete the page and insert using drag drop from the toolbox, or using the ghost page's add question button.
  2. Select the Page > Settings. It is named "Page 1". [Expected behaviour]

Specify your

  • browser: Chrome
  • editor version: 1.9.40
Product
survey-creator
Type
Bug
Description
Type Converter does not work on hover

image

Product
survey-creator
Type
Bug
Description
onModified event not firing after json property is set to empty
  const creatorOptions = {};
  const creator = new SurveyCreator(creatorOptions);
  creator.JSON = {};
  creator.onModified.add((sender, options) => {
    console.log('IS MODIFIED')
  });

To reproduce: Add a question and on the console you will see a "modified" string signifying that the event was triggered. After this, change the Survey Title and you'll see that the event does not get fired.

https://surveyjs.answerdesk.io/ticket/details/t10050/survey-creator-issues https://surveyjs.answerdesk.io/ticket/details/t10042/onmodified-doesn-t-get-triggered-when-survey-title-is-changed-after-adding-a-question

Version: v1.9.40, released at Tuesday, July 12, 2022, Total Issue Count: 18

Product Type Description
survey-library Enhancement Remove constant array duplication on defining inputTypes and dataList

There are several duplication in constant arrays on defining properties "dataList" and "inputType".

survey-library Bug Dropdown question: clear question value using keyboard.
survey-library Bug Do not set min bigger than max and max less than min for text question for input types: month, week and time

We do not have restrictions for min and max for input types: month, week and time.

survey-library Bug required text is not updated for matrix column when column requriedIf returns true

For the following json, second and third columns do not show "*" required text even when "a" equals 5 and column1 for all rows equals to 2.

{
        type: "matrixdynamic",
        name: "matrix",
        rowCount: 2,
        columns: [
          { name: "column1", isRequired: true },
          { name: "column2", requiredIf: "{a} = 5" },
          { name: "column3", requiredIf: "{row.column1} = 2" }
        ]
      }
survey-library Enhancement Support underline symbol in string constant wihout brackets in expressions

The correct string constant should be in brackets in our expressions: {question1} = "item1" or {question1} = 'item1'. Some people use it without brackets: {question1} = item1. However if there is an underline, it doesn't work {question1} = item_1 is invalid, it should be {question1} = "item_1". We can support {question1} = item_1 as well.

survey-library Enhancement Keep question and column title if it was set directly and equals to name

Currently, on seting question and column title equals to name, we clear the title property. By default, the empty title is rendered as name. However, it is not a good UI. An end-user enters the title in Creator and then it disappeared. We should keep title value if it was set directly even if it equals to name.

survey-library Bug Rating as a drop down list throws an exception when clicked

_this.question.onClick is not a function at SurveyQuestionDropdownBase._this.click (dropdown-base.ts

survey-library Bug Do not generate JSON de-serialization required error if property has a default value

If we have the following new property:

Survey.Serializer.addProperty("question", {
  name: "tag:number",
  default: 0,
  category: "general",
  isRequired: true
});

Then Survey de-serializer starts to generates error if a question doesn't have a tag property in JSON. However, there is a default value for the property.

survey-creator Enhancement Too big padding in toolbar

image

survey-creator Enhancement The default property grid groups should be collapsed when we start working
survey-creator Bug Logic tab: Texts overflow the controls when showTitlesInExpressions is enabled
survey-creator Bug `allowModifyPages: false` doesn't work

This property shouldn't allow users to add, delete, or edit survey pages. However, it doesn't seem to apply.

CodeSandbox

survey-creator Enhancement Create an example on onGetElementWrapperComponentName and onGetElementWrapperComponentData events
survey-creator Bug The column editor has incorrect styles.
survey-creator Enhancement Add "defaultV2" theme into embedded tab

Add defaultV2 theme and make it default in embedded tab.

survey-creator Bug V1: check unique for calculated values and matrix column names as case insensitive

Right now you can add two calculated values as "var1" and "Var1". It can lead to issues. We should not allow it.

survey-creator Bug ISurveyCreator interface missed questionTypes and pageEditMode properties

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

Reporting an issue with TypeScript models.

What is the current behavior?

When creating an instance of SurveyCreator, the interface ICreatorOptions doesn't offer all options. If the options are added and we ignore the errors, the code works as expected. So the code/functionality is there, but the models are missing properties.

What is the expected behavior?

The TypeScript models show the real functionality.

Also the questionTypes are missing in the documentation of SurveyCreator and also ICreatorOptions https://surveyjs.io/Documentation/Survey-Creator?id=surveycreator https://surveyjs.io/Documentation/Survey-Creator?id=ICreatorOptions

Test code

import { SurveyCreator } from 'survey-creator-knockout';

new SurveyCreator({
  questionTypes: ['text'],
  pageEditMode: 'single',
});

image

Specify your

  • browser: Chromium 103
  • editor version: 1.9.39
survey-creator Enhancement Allow to modify text in logic tab view

Add creator.onLogicItemDisplayText to allow changing the text in logic tab view. The following code shows only expression and do not show the list of actions:

  creator.onLogicItemDisplayText.add((sender, options) => {
    let text = options.expressionText;
    text = text.replace(new RegExp("({|})", "gm"), "'");
    options.text = text;
  });
  /**
   * Use this event to modify the display text in a logic viewer.
   *- sender the survey creator object that fires the event.
   *- options.expression the item expression. 
   *- options.expressionText expression as display text. It can show question title instead of question name
   *- options.logicItem the link to the Logic Item object. It has the array of actions and other properties
   *- options.text the string property that you can change
   */
   public onLogicItemDisplayText

Version: v1.9.40, released at Tuesday, July 12, 2022, Total Issue Count: 18

Product
survey-library
Type
Enhancement
Description
Remove constant array duplication on defining inputTypes and dataList

There are several duplication in constant arrays on defining properties "dataList" and "inputType".

Product
survey-library
Type
Bug
Description
Dropdown question: clear question value using keyboard.

We do not have restrictions for min and max for input types: month, week and time.

For the following json, second and third columns do not show "*" required text even when "a" equals 5 and column1 for all rows equals to 2.

{
        type: "matrixdynamic",
        name: "matrix",
        rowCount: 2,
        columns: [
          { name: "column1", isRequired: true },
          { name: "column2", requiredIf: "{a} = 5" },
          { name: "column3", requiredIf: "{row.column1} = 2" }
        ]
      }
Product
survey-library
Type
Enhancement
Description
Support underline symbol in string constant wihout brackets in expressions

The correct string constant should be in brackets in our expressions: {question1} = "item1" or {question1} = 'item1'. Some people use it without brackets: {question1} = item1. However if there is an underline, it doesn't work {question1} = item_1 is invalid, it should be {question1} = "item_1". We can support {question1} = item_1 as well.

Product
survey-library
Type
Enhancement
Description
Keep question and column title if it was set directly and equals to name

Currently, on seting question and column title equals to name, we clear the title property. By default, the empty title is rendered as name. However, it is not a good UI. An end-user enters the title in Creator and then it disappeared. We should keep title value if it was set directly even if it equals to name.

Product
survey-library
Type
Bug
Description
Rating as a drop down list throws an exception when clicked

_this.question.onClick is not a function at SurveyQuestionDropdownBase._this.click (dropdown-base.ts

If we have the following new property:

Survey.Serializer.addProperty("question", {
  name: "tag:number",
  default: 0,
  category: "general",
  isRequired: true
});

Then Survey de-serializer starts to generates error if a question doesn't have a tag property in JSON. However, there is a default value for the property.

Product
survey-creator
Type
Enhancement
Description
Too big padding in toolbar

image

Product
survey-creator
Type
Enhancement
Description
The default property grid groups should be collapsed when we start working
Product
survey-creator
Type
Bug
Description
`allowModifyPages: false` doesn't work

This property shouldn't allow users to add, delete, or edit survey pages. However, it doesn't seem to apply.

CodeSandbox

Product
survey-creator
Type
Bug
Description
The column editor has incorrect styles.
Product
survey-creator
Type
Enhancement
Description
Add "defaultV2" theme into embedded tab

Add defaultV2 theme and make it default in embedded tab.

Right now you can add two calculated values as "var1" and "Var1". It can lead to issues. We should not allow it.

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

Reporting an issue with TypeScript models.

What is the current behavior?

When creating an instance of SurveyCreator, the interface ICreatorOptions doesn't offer all options. If the options are added and we ignore the errors, the code works as expected. So the code/functionality is there, but the models are missing properties.

What is the expected behavior?

The TypeScript models show the real functionality.

Also the questionTypes are missing in the documentation of SurveyCreator and also ICreatorOptions https://surveyjs.io/Documentation/Survey-Creator?id=surveycreator https://surveyjs.io/Documentation/Survey-Creator?id=ICreatorOptions

Test code

import { SurveyCreator } from 'survey-creator-knockout';

new SurveyCreator({
  questionTypes: ['text'],
  pageEditMode: 'single',
});

image

Specify your

  • browser: Chromium 103
  • editor version: 1.9.39
Product
survey-creator
Type
Enhancement
Description
Allow to modify text in logic tab view

Add creator.onLogicItemDisplayText to allow changing the text in logic tab view. The following code shows only expression and do not show the list of actions:

  creator.onLogicItemDisplayText.add((sender, options) => {
    let text = options.expressionText;
    text = text.replace(new RegExp("({|})", "gm"), "'");
    options.text = text;
  });
  /**
   * Use this event to modify the display text in a logic viewer.
   *- sender the survey creator object that fires the event.
   *- options.expression the item expression. 
   *- options.expressionText expression as display text. It can show question title instead of question name
   *- options.logicItem the link to the Logic Item object. It has the array of actions and other properties
   *- options.text the string property that you can change
   */
   public onLogicItemDisplayText

Version: v1.9.39, released at Tuesday, July 5, 2022, Total Issue Count: 12

Product Type Description
survey-library Enhancement Move all project from nodejs 14 to latest stable

For now our projects required node 14 we need to support npm run build on latest stable nodejs (16)

how to reproduced: install latest stable nodejs. go to the library. npm run build_prod

survey-library Enhancement column templateQuestion has undefined parentQuestion

We need parentQuestion to be set to matrix instance for templateQuestion in a column. It is needed for Creator V2 functionality to find out matrix for template question.

survey-library Bug Preview shows value instead of text for dropdown choices, which were added programmatically and are inside a dynamic panel

Steps to reproduce:

  1. Add a dynamic panel, which contains a dropdown question
  2. Set showPreviewBeforeComplete to 'showAnsweredQuestions'
  3. Handle the onDynamicPanelAdded event and use it to programmatically add a new choice to the dropdown
  4. Run the survey and select the programmatically added choice in the dropdown
  5. Click "Preview". The value of the dropdown's item will be shown instead of it's text

Here is a plunker with an example (select "Four" from the dropdown and click "Preview"): https://plnkr.co/edit/5mlxgFcNEdrGiJlw

  • surveyjs platform (angular or react or jquery or knockout or vue): react
  • surveyjs version: 1.9.37

Code:

Survey.StylesManager.applyTheme("defaultV2");
var json = {
    "elements": [
    {
     "type": "paneldynamic",
     "name": "panelDynamic",
     "templateElements": [
      {
       "type": "dropdown",
       "name": "question1",
       "choices": [
        {
         "value": "1",
         "text": "One"
        },
        {
         "value": "2",
         "text": "Two"
        },
        {
         "value": "3",
         "text": "Three"
        }
       ]
      }
     ]
    }
   ]  
};
window.survey = new Survey.Model(json);
window.survey.onDynamicPanelAdded.add(function (survey, options) {
  options.panel.getQuestionByName("question1")
    .choices
    .push(new Survey.ItemValue('4', 'Four')
  );
});

survey.onComplete.add(function (sender) {
  document.querySelector('#surveyResult').textContent = "Result JSON:\n" + JSON.stringify(sender.data, null, 3);
});
survey.showPreviewBeforeComplete = 'showAnsweredQuestions';
ReactDOM.render (<SurveyReact.Survey model={survey}/>, document.getElementById("surveyElement"));
survey-library Enhancement Introduce onSettingValue function into JsonProperty to validate property value

There is no mechanism to check property value before it is inserted into UI. This functionality is requried for creating better UI behavior in Creator V2. Here is the declaration for rateMax property in ranting question.

  public set rateMin(val: number) {
   //Call this function instead of setPropertyValue
    this.checkAndSetPropertyValue("rateMin", val);
  }
    { name: "rateMax:number", default: 5,
      onSettingValue: (obj: any, val: any): any => {
        return val < obj.rateMin + obj.rateStep ? obj.rateMin + obj.rateStep: val;
      }
    }
survey-library Enhancement Introduce an interface for ComponentCollection add method argument
survey-library Bug Custom question loose it's value on setting survey into single page mode in the code

The following code doesnt' work correcty

  const json = {
    name: "newquestion",
    questionJSON: { type: "dropdown", choices: [1, 2, 3, 4, 5] },
  };
  ComponentCollection.Instance.add(json);
  const survey = new SurveyModel({
    elements: [{ type: "newquestion", name: "q1" }],
  });
  survey.data = { q1: 3 };
  survey.questionsOnPageMode = "singlePage";
  ///Here survey.data is empty
survey-library Bug Text question: Do not allow to set min property bigger than max and max property less than min

Right now, we allow to set min property bigger than max and max property less than min. We have to fix it.

survey-creator Bug Toolbox - mouse pointer changes to text selector on hover in Safari

image

survey-creator Bug Survey creator rateMax and rateMin can overlap

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

Reporting a Bug

What is the current behavior?

If you set your rate min to 3, rate max to 4. You can then change rate max to 3, then to 2, then to 1 etc. None of these changes are applied to the JSON and the change should just be ignored?

What is the expected behavior?

Ignore invalid property changes. Ideally with an error.

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

Go to https://plnkr.co/edit/eci8DQOj916e9Mws Select Question 1 Open properties grid Rate values Change Max Rate from 4 to -1. Anything below the rate min is not applied and the survey-creator UI should reflect this.

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

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

Test code

your_code_here

Specify your

  • browser: Chrome
  • editor version: 1.9.37
survey-creator Bug Unnecessary scroll appears when the Survey Creator is configured to occupy full screen

Body margin is 0. You can reproduce the issue in this project.

image

survey-creator Bug Question can be removed on converting it to another type

If the question is located on the last page and it is the only question, the question is removed completely. The problem is related to functionality, when we remove a last page if there is no question on it. During convertion,we remove a question first and then insert a new one. However, after removing the last page is removed as well and a new question is added into removed question.

survey-creator Enhancement Allow to set text into Creator and generate survey if errors are not critical

If we can create a survey from JSON stored as a text, but there are some errors, show the designer with generated survey instead of JSON Editor. For example, consider there is a following JSON:

{
    elements: [
      { type: "text", name: "question1" },
      { type: "text_jfeskjf", name: "question2" },
    ]
      { type: "matrixdynamic",
        name: "question3",
        columns: [
          { name: "col1", cellType: "dropdown", choices: [1, 2, 3] },
          { name: "col2", choices: [1, 2, 3] }
        ]
      },
}

It has two errors: There is not element type: "text_jfeskjf" and the second column has choices, but there is no cell type and choices will be ignored. However, we still can create this survey and show two questions.

Version: v1.9.39, released at Tuesday, July 5, 2022, Total Issue Count: 12

Product
survey-library
Type
Enhancement
Description
Move all project from nodejs 14 to latest stable

For now our projects required node 14 we need to support npm run build on latest stable nodejs (16)

how to reproduced: install latest stable nodejs. go to the library. npm run build_prod

Product
survey-library
Type
Enhancement
Description
column templateQuestion has undefined parentQuestion

We need parentQuestion to be set to matrix instance for templateQuestion in a column. It is needed for Creator V2 functionality to find out matrix for template question.

Steps to reproduce:

  1. Add a dynamic panel, which contains a dropdown question
  2. Set showPreviewBeforeComplete to 'showAnsweredQuestions'
  3. Handle the onDynamicPanelAdded event and use it to programmatically add a new choice to the dropdown
  4. Run the survey and select the programmatically added choice in the dropdown
  5. Click "Preview". The value of the dropdown's item will be shown instead of it's text

Here is a plunker with an example (select "Four" from the dropdown and click "Preview"): https://plnkr.co/edit/5mlxgFcNEdrGiJlw

  • surveyjs platform (angular or react or jquery or knockout or vue): react
  • surveyjs version: 1.9.37

Code:

Survey.StylesManager.applyTheme("defaultV2");
var json = {
    "elements": [
    {
     "type": "paneldynamic",
     "name": "panelDynamic",
     "templateElements": [
      {
       "type": "dropdown",
       "name": "question1",
       "choices": [
        {
         "value": "1",
         "text": "One"
        },
        {
         "value": "2",
         "text": "Two"
        },
        {
         "value": "3",
         "text": "Three"
        }
       ]
      }
     ]
    }
   ]  
};
window.survey = new Survey.Model(json);
window.survey.onDynamicPanelAdded.add(function (survey, options) {
  options.panel.getQuestionByName("question1")
    .choices
    .push(new Survey.ItemValue('4', 'Four')
  );
});

survey.onComplete.add(function (sender) {
  document.querySelector('#surveyResult').textContent = "Result JSON:\n" + JSON.stringify(sender.data, null, 3);
});
survey.showPreviewBeforeComplete = 'showAnsweredQuestions';
ReactDOM.render (<SurveyReact.Survey model={survey}/>, document.getElementById("surveyElement"));
Product
survey-library
Type
Enhancement
Description
Introduce onSettingValue function into JsonProperty to validate property value

There is no mechanism to check property value before it is inserted into UI. This functionality is requried for creating better UI behavior in Creator V2. Here is the declaration for rateMax property in ranting question.

  public set rateMin(val: number) {
   //Call this function instead of setPropertyValue
    this.checkAndSetPropertyValue("rateMin", val);
  }
    { name: "rateMax:number", default: 5,
      onSettingValue: (obj: any, val: any): any => {
        return val < obj.rateMin + obj.rateStep ? obj.rateMin + obj.rateStep: val;
      }
    }
Product
survey-library
Type
Enhancement
Description
Introduce an interface for ComponentCollection add method argument

The following code doesnt' work correcty

  const json = {
    name: "newquestion",
    questionJSON: { type: "dropdown", choices: [1, 2, 3, 4, 5] },
  };
  ComponentCollection.Instance.add(json);
  const survey = new SurveyModel({
    elements: [{ type: "newquestion", name: "q1" }],
  });
  survey.data = { q1: 3 };
  survey.questionsOnPageMode = "singlePage";
  ///Here survey.data is empty

Right now, we allow to set min property bigger than max and max property less than min. We have to fix it.

Product
survey-creator
Type
Bug
Description
Toolbox - mouse pointer changes to text selector on hover in Safari

image

Product
survey-creator
Type
Bug
Description
Survey creator rateMax and rateMin can overlap

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

Reporting a Bug

What is the current behavior?

If you set your rate min to 3, rate max to 4. You can then change rate max to 3, then to 2, then to 1 etc. None of these changes are applied to the JSON and the change should just be ignored?

What is the expected behavior?

Ignore invalid property changes. Ideally with an error.

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

Go to https://plnkr.co/edit/eci8DQOj916e9Mws Select Question 1 Open properties grid Rate values Change Max Rate from 4 to -1. Anything below the rate min is not applied and the survey-creator UI should reflect this.

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

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

Test code

your_code_here

Specify your

  • browser: Chrome
  • editor version: 1.9.37

Body margin is 0. You can reproduce the issue in this project.

image

Product
survey-creator
Type
Bug
Description
Question can be removed on converting it to another type

If the question is located on the last page and it is the only question, the question is removed completely. The problem is related to functionality, when we remove a last page if there is no question on it. During convertion,we remove a question first and then insert a new one. However, after removing the last page is removed as well and a new question is added into removed question.

Product
survey-creator
Type
Enhancement
Description
Allow to set text into Creator and generate survey if errors are not critical

If we can create a survey from JSON stored as a text, but there are some errors, show the designer with generated survey instead of JSON Editor. For example, consider there is a following JSON:

{
    elements: [
      { type: "text", name: "question1" },
      { type: "text_jfeskjf", name: "question2" },
    ]
      { type: "matrixdynamic",
        name: "question3",
        columns: [
          { name: "col1", cellType: "dropdown", choices: [1, 2, 3] },
          { name: "col2", choices: [1, 2, 3] }
        ]
      },
}

It has two errors: There is not element type: "text_jfeskjf" and the second column has choices, but there is no cell type and choices will be ignored. However, we still can create this survey and show two questions.

Version: v1.9.38, released at Thursday, June 30, 2022, Total Issue Count: 6

Product Type Description
survey-library Bug Column with default cellType can be serilized incorrectly

Create a matrix dynamic, then set it's cellType (default cell type of all columns) to "rating", after that set the "cellType" property to "rating" and "rateMax" to 10. Then change the "cellType" to "default". We will have "rateMax" equals to 10 in the serialized JSON, while we should not have it, since the cellType property is "default" and not "rating".

survey-library Bug column isUnique property doesn't respect settings.comparator.caseSensitive option

Two values in in unique column are not equal: "abc" and "ABC" however settings.comparator.caseSensitive is false (default value). It should allow to enter "abc" and "ABC" values if column is empty.

survey-creator Bug V2: enableIf in Rows for matrix dropdown question are in others category

enableIf should be display the same as the visibleIf

survey-creator Bug Changing question name for matrices doesn't update logic items correctly

Changing question name doesn't work for complex questions, for example for matrix dropdown. Here the exampel of visibleIf property: "{question1.Row 1.column 2} = "item1". On changing question1 the visibleIf property remains the same.

survey-creator Bug React SurveyLocStringEditor cached it's model

SurveyLocStringEditor should re-create model on componentDidUpdate

survey-creator Bug Theme selector in Preview/Test tab doesn't support changing creator locale

On changing creator locale in run-time, the theme selector doesn't change it's titles in it's items.

Version: v1.9.38, released at Thursday, June 30, 2022, Total Issue Count: 6

Product
survey-library
Type
Bug
Description
Column with default cellType can be serilized incorrectly

Create a matrix dynamic, then set it's cellType (default cell type of all columns) to "rating", after that set the "cellType" property to "rating" and "rateMax" to 10. Then change the "cellType" to "default". We will have "rateMax" equals to 10 in the serialized JSON, while we should not have it, since the cellType property is "default" and not "rating".

Two values in in unique column are not equal: "abc" and "ABC" however settings.comparator.caseSensitive is false (default value). It should allow to enter "abc" and "ABC" values if column is empty.

enableIf should be display the same as the visibleIf

Changing question name doesn't work for complex questions, for example for matrix dropdown. Here the exampel of visibleIf property: "{question1.Row 1.column 2} = "item1". On changing question1 the visibleIf property remains the same.

Product
survey-creator
Type
Bug
Description
React SurveyLocStringEditor cached it's model

SurveyLocStringEditor should re-create model on componentDidUpdate

On changing creator locale in run-time, the theme selector doesn't change it's titles in it's items.

Version: v1.9.37, released at Wednesday, June 22, 2022, Total Issue Count: 6

Product Type Description
survey-library Bug Ignore Choices property for matrix column when column type is Default
 "columns": [
      {
       "name": "Score",
       "minWidth": "500px",
       "choices": [
        1,
        2,
        3,
        4,
        5,
        "I haven't used it before"
       ],
       "storeOthersAsComment": true
      }
     ],
     "choices": [
      "I haven't used it",
      "Very satisfied",
      "Satisfied",
      "Neutral",
      "Dissatisfied",
      "Very dissatisfied"
     ],
survey-library Enhancement Fix disabled selected color for rating

image

survey-library Bug If "first page is a start page" and there is only one page survey is empty

Survey becomes empty if there is only one page and this page is started. We should not apply "first page is a start page" functionality if there is only one page.

survey-creator Enhancement Remove empty page after deleting all questions

(if no title and description of page entered) image

survey-creator Enhancement Select string editor text when it is focused by Tab key

image

survey-creator Bug V2 for knockout: Could not change "and" on "or" in logic tab or in condition editor

Popup list box with "and" and "or" is not show in Creator for knockout. You can check it on our website.

Version: v1.9.37, released at Wednesday, June 22, 2022, Total Issue Count: 6

Product
survey-library
Type
Bug
Description
Ignore Choices property for matrix column when column type is Default
 "columns": [
      {
       "name": "Score",
       "minWidth": "500px",
       "choices": [
        1,
        2,
        3,
        4,
        5,
        "I haven't used it before"
       ],
       "storeOthersAsComment": true
      }
     ],
     "choices": [
      "I haven't used it",
      "Very satisfied",
      "Satisfied",
      "Neutral",
      "Dissatisfied",
      "Very dissatisfied"
     ],
Product
survey-library
Type
Enhancement
Description
Fix disabled selected color for rating

image

Survey becomes empty if there is only one page and this page is started. We should not apply "first page is a start page" functionality if there is only one page.

Product
survey-creator
Type
Enhancement
Description
Remove empty page after deleting all questions

(if no title and description of page entered) image

Product
survey-creator
Type
Enhancement
Description
Select string editor text when it is focused by Tab key

image

Popup list box with "and" and "or" is not show in Creator for knockout. You can check it on our website.

Version: v1.9.36, released at Tuesday, June 21, 2022, Total Issue Count: 11

Product Type Description
survey-library Bug dropdown: others text is not reactive in React and Vue
survey-library Bug Replace substr vs substring function in the code

substr is deprecated and we should to replace it vs substring.

survey-library Bug Changing binding in panel / matrix dynamic doesn't fire survey.onPropertyValueChangedCallback

On changing bindings in Creator V2 property grid survey onPropertyValueChangedCallback is not fired as result Creator is not go into modified mode and the change can be lost.

survey-library Bug Implement errorLocationBottom in defaultV2 theme
survey-library Bug Triggers: enable question and skip to the question do not work at once.

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

What is the current behavior? Triggers. There's a radiobutton question (question1) with 3 items and question13 (default text input. It is disabled initially). There is a condition:

== 'item2') or ( == 'item3' => Make question enable Survey skip to the question

When I clicked 'item2' for the first time, It did not skip me to question13, but it becomes enabled, but when I click 'item3', it skips me to question13, because it is already enabled.

The main issue is that currently this setup of triggers (enable + skip) does not work.

What is the expected behavior? After clicking 'item2' or 'item3', it should enable question13 and skip me to question13 at once.

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

  1. Create radiobutton question (question1) and disabled text input (question2).
  2. Create a condition: == 'item2') or ( == 'item3' => Make question enable Survey skip to the question
  3. Go to survey.
  4. Click item2.
  5. It should only enable question2.

Provide the test code and the tested page URL (if applicable) Tested page URL: https://plnkr.co/edit/NX7E6BxCVkVs9gAV

Test code

var json = { "title": "SimultaneousEnableAndSkip", "pages": [ { "name": "page1", "elements": [ { "type": "radiogroup", "name": "question1", "id": 2759, "choices": [ { "value": "item1", "id": 38117 }, { "value": "item2", "id": 38118 }, { "value": "item3", "id": 38119 } ] }, { "type": "text", "name": "question2", "id": 2760 }, { "type": "text", "name": "question3", "id": 2761 }, { "type": "text", "name": "question4", "id": 2762 }, { "type": "text", "name": "question5", "id": 2763 }, { "type": "text", "name": "question6", "id": 2764 }, { "type": "text", "name": "question7", "id": 2765 }, { "type": "text", "name": "question8", "id": 2766 }, { "type": "text", "name": "question9", "id": 2767 }, { "type": "text", "name": "question10", "id": 2768 }, { "type": "text", "name": "question11", "id": 2769 }, { "type": "text", "name": "question12", "id": 2770 }, { "type": "text", "name": "question13", "enableIf": " = 'item2' or = 'item3'", "readOnly": true, "id": 2771 } ], "navigationButtonsVisibility": "show", "id": 358 } ], "triggers": [ { "type": "skip", "expression": " = 'item1'", "gotoName": "question2" }, { "type": "skip", "expression": " = 'item2' or = 'item3'", "gotoName": "question13" } ], "name": "SimultaneousEnableAndSkip", "id": 164 };

Specify your browser: Chrome 102 browser version: 102 surveyjs platform (angular or react or jquery or knockout or vue): React surveyjs version: v1.9.26 AND v1.9.35

survey-library Bug Incorrect error text for min property if it is equal to 0

If text question has min property equals to 0 then the error can be show as: "The value should not be less than {0}" instead of "The value should not be less than 0"

survey-creator Bug direction RTL not supported

Is it possible to support the direction of the page from right to left?

Example:

Screenshot (191)

Screenshot (190)

survey-creator Bug Replace deprecated substr vs substring function in the code

We have to stop using substr function

survey-creator Bug Depended property doesn't work in calculated value object

The following code will not work, because we do update depended properties editors in detail panel in our matrices. We use matrices to edit collection properties, like calcualted values.

Survey.Serializer.addProperty("calculatedvalue", "targetEntity");
Survey.Serializer.addProperty("calculatedvalue", {
    name: "targetField",
    dependsOn: "targetEntity",
    choices: function (obj) {
      return getChoicesByEntity(obj);
    }
  });
  function getChoicesByEntity(obj: any): Array<any> {
    const entity = !!obj ? obj["targetEntity"] : null;
    const choices = [];
    if (!entity) return choices;
    choices.push({ value: "entity" });
    choices.push({ value: entity + " 1", text: entity + " 1" });
    choices.push({ value: entity + " 2", text: entity + " 2" });
    return choices;
  }
survey-creator Enhancement Add a property into settings to define the export translation file name

Add a new property into translation section of the settings variable: exportFileName: "survey_translation.csv"

survey-creator Enhancement Add creator.onTranslationImportItem event

We need an event to control importing localization strings into translation tab / survey model

  /**
   * Use this event to modify the imported localizable text. To block importing a particular localization text, set the options.text into undefined.
   *
   * The event handler accepts the following arguments:
   *
   * - `sender` - A Survey Creator instance that raised the event.
   * - `options.locale` - the locale name, like 'en', 'de' and so on.
   * - `options.name` - The full name of the localizable string, it can be: "survey.page1.question2.title"
   * - `options.text` - The imported text for the locale for this item. Set it to undefined or empty string to block importing for this item
   */
   public onTranslationImportItem: Survey.Event<(sender: CreatorBase, options: any) => any, any>;

Here is the example to allow edit only default, en, de and fr translation:

  creator.onTranslationImportItem.add((sender, options) => {
    if(["default", "", "en", "de", "fr"].indexOf(options.locale) < 0) options.text = undefined;
  });

Version: v1.9.36, released at Tuesday, June 21, 2022, Total Issue Count: 11

Product
survey-library
Type
Bug
Description
dropdown: others text is not reactive in React and Vue
Product
survey-library
Type
Bug
Description
Replace substr vs substring function in the code

substr is deprecated and we should to replace it vs substring.

On changing bindings in Creator V2 property grid survey onPropertyValueChangedCallback is not fired as result Creator is not go into modified mode and the change can be lost.

Product
survey-library
Type
Bug
Description
Implement errorLocationBottom in defaultV2 theme

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

What is the current behavior? Triggers. There's a radiobutton question (question1) with 3 items and question13 (default text input. It is disabled initially). There is a condition:

== 'item2') or ( == 'item3' => Make question enable Survey skip to the question

When I clicked 'item2' for the first time, It did not skip me to question13, but it becomes enabled, but when I click 'item3', it skips me to question13, because it is already enabled.

The main issue is that currently this setup of triggers (enable + skip) does not work.

What is the expected behavior? After clicking 'item2' or 'item3', it should enable question13 and skip me to question13 at once.

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

  1. Create radiobutton question (question1) and disabled text input (question2).
  2. Create a condition: == 'item2') or ( == 'item3' => Make question enable Survey skip to the question
  3. Go to survey.
  4. Click item2.
  5. It should only enable question2.

Provide the test code and the tested page URL (if applicable) Tested page URL: https://plnkr.co/edit/NX7E6BxCVkVs9gAV

Test code

var json = { "title": "SimultaneousEnableAndSkip", "pages": [ { "name": "page1", "elements": [ { "type": "radiogroup", "name": "question1", "id": 2759, "choices": [ { "value": "item1", "id": 38117 }, { "value": "item2", "id": 38118 }, { "value": "item3", "id": 38119 } ] }, { "type": "text", "name": "question2", "id": 2760 }, { "type": "text", "name": "question3", "id": 2761 }, { "type": "text", "name": "question4", "id": 2762 }, { "type": "text", "name": "question5", "id": 2763 }, { "type": "text", "name": "question6", "id": 2764 }, { "type": "text", "name": "question7", "id": 2765 }, { "type": "text", "name": "question8", "id": 2766 }, { "type": "text", "name": "question9", "id": 2767 }, { "type": "text", "name": "question10", "id": 2768 }, { "type": "text", "name": "question11", "id": 2769 }, { "type": "text", "name": "question12", "id": 2770 }, { "type": "text", "name": "question13", "enableIf": " = 'item2' or = 'item3'", "readOnly": true, "id": 2771 } ], "navigationButtonsVisibility": "show", "id": 358 } ], "triggers": [ { "type": "skip", "expression": " = 'item1'", "gotoName": "question2" }, { "type": "skip", "expression": " = 'item2' or = 'item3'", "gotoName": "question13" } ], "name": "SimultaneousEnableAndSkip", "id": 164 };

Specify your browser: Chrome 102 browser version: 102 surveyjs platform (angular or react or jquery or knockout or vue): React surveyjs version: v1.9.26 AND v1.9.35

Product
survey-library
Type
Bug
Description
Incorrect error text for min property if it is equal to 0

If text question has min property equals to 0 then the error can be show as: "The value should not be less than {0}" instead of "The value should not be less than 0"

Product
survey-creator
Type
Bug
Description
direction RTL not supported

Is it possible to support the direction of the page from right to left?

Example:

Screenshot (191)

Screenshot (190)

Product
survey-creator
Type
Bug
Description
Replace deprecated substr vs substring function in the code

We have to stop using substr function

Product
survey-creator
Type
Bug
Description
Depended property doesn't work in calculated value object

The following code will not work, because we do update depended properties editors in detail panel in our matrices. We use matrices to edit collection properties, like calcualted values.

Survey.Serializer.addProperty("calculatedvalue", "targetEntity");
Survey.Serializer.addProperty("calculatedvalue", {
    name: "targetField",
    dependsOn: "targetEntity",
    choices: function (obj) {
      return getChoicesByEntity(obj);
    }
  });
  function getChoicesByEntity(obj: any): Array<any> {
    const entity = !!obj ? obj["targetEntity"] : null;
    const choices = [];
    if (!entity) return choices;
    choices.push({ value: "entity" });
    choices.push({ value: entity + " 1", text: entity + " 1" });
    choices.push({ value: entity + " 2", text: entity + " 2" });
    return choices;
  }
Product
survey-creator
Type
Enhancement
Description
Add a property into settings to define the export translation file name

Add a new property into translation section of the settings variable: exportFileName: "survey_translation.csv"

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

We need an event to control importing localization strings into translation tab / survey model

  /**
   * Use this event to modify the imported localizable text. To block importing a particular localization text, set the options.text into undefined.
   *
   * The event handler accepts the following arguments:
   *
   * - `sender` - A Survey Creator instance that raised the event.
   * - `options.locale` - the locale name, like 'en', 'de' and so on.
   * - `options.name` - The full name of the localizable string, it can be: "survey.page1.question2.title"
   * - `options.text` - The imported text for the locale for this item. Set it to undefined or empty string to block importing for this item
   */
   public onTranslationImportItem: Survey.Event<(sender: CreatorBase, options: any) => any, any>;

Here is the example to allow edit only default, en, de and fr translation:

  creator.onTranslationImportItem.add((sender, options) => {
    if(["default", "", "en", "de", "fr"].indexOf(options.locale) < 0) options.text = undefined;
  });

Version: v1.9.35, released at Tuesday, June 14, 2022, Total Issue Count: 9

Product Type Description
survey-library Bug Check survey paddings

image

white padding on body in mobile mode: - FIXED image

survey-library Enhancement radiogroup, checkbox example: others text setting is not reactive in Vue
survey-library Enhancement Allow to add array custom properties

We have to add isArray attribute into property description to let Survey know that this property is an array and should deal with it as with array property. Here is the example:

Survey.Serializer.addProperty('survey', {
  name: 'customFunctions:calculatedvalues',
  className: 'calculatedvalue', isArray: true,
  displayName: "Custom Functions", category: "logic", visibleIndex: 0,
});
survey-library Bug Summary doesn't work corretly in matrices if there is visibleIf condition in column and survey.clearInvisibleValues is used

The following survey doesn't work:

{
    elements: [
      {
        type: "matrixdropdown",
        name: "matrix",
        columns: [
          {
            name: "col1",
            cellType: "text",
            totalType: "sum",
            inputType: "number",
          },
          {
            name: "col2",
            cellType: "text",
            totalType: "sum",
            inputType: "number",
          },
          {
            name: "col_sum",
            cellType: "expression",
            totalType: "sum",
            expression: "{row.col1}+{row.col2}",
          },
          {
            name: "col3",
            cellType: "boolean",
            visibleIf: "false",
          },
        ],
        rows: ["row1", "row2"],
      },
    ],
    clearInvisibleValues: "onHiddenContainer"
  }

It works if remove "visibleIf" for a column or "clearInvisibleValues" property

survey-library Enhancement Optionally store checkbox value as array of objects with a property name

It would be nice to share data between checkbox and panel dynamic / matrix dynamic. Currently, it is not possible because checkbox value is array of choice item value and panel/matrix dynamic is an array of objects: We can add "valuePropertyName" property, so by setting it to "fruit" the checkbox value can be stored intead of: ["banana", "apple"] as: [{ fruit: "banana" }, { fruit: "apple" }]. Additionally, we should allow to combine checkbox values with values entered in panel/matrix dynamic questions. Example of JSON:

{
    elements: [
      {
        type: "checkbox",
        name: "q1",
        valueName: "fruits",
        valuePropertyName: "fruit",
        choices: ["apple", "banana", "orange"],
      },
      {
        type: "paneldynamic",
        name: "q2",
        panelCount: 0,
        valueName: "fruits",
        templateElements: [
          {
            type: "comment",
            name: "description"
          }
        ]
      }
    ]
  }

survey-library Bug Text pre-processing doesn't work for complex values set in survey.data

The following code doesn't work:

  const survey = new SurveyModel({
    elements: [
      {
        type: "text",
        name: "q1",
        title: "{complex.value1}",
      }
    ]
  });
  survey.data = { complex: { value1: "complexText" } };

Text pre-processing doesn't recognize "complex.value1"

survey-creator Bug V2: creator.onItemValueAdded is not fired on adding new item in designer surface

creator.onItemValueAdded event is fired on adding a new choice in the Property Grid, but is not fired on adding a new choice in question on the designer surface.

survey-creator Bug Deleted object can be displayed in the property grid

If a question immediately deleted after adding the a deleted object can be showin in the property grid:

  creator.onQuestionAdded.add((sender, options) => {
    if (creator.survey.getAllQuestions().length > 1) {
      options.question.delete();
    }
  });
survey-creator Enhancement Allow to render custom title on Property Grid panel

We can override display names for Property Grid Object select by using creator.onGetObjectDisplayName, with "options.reason" equals to "property-grid". However, it is impossible to have a custom selected property title, for example: "Survey Properties" or "Question1 Properties". It should be added an additional reason "property-grid-title".

    creator.onGetObjectDisplayName.add(function (sender, options) {
      if(options.reason === "property-grid-title") {
        options.displayName = options.displayName + " Properties";
      }
    });

Version: v1.9.35, released at Tuesday, June 14, 2022, Total Issue Count: 9

Product
survey-library
Type
Bug
Description
Check survey paddings

image

white padding on body in mobile mode: - FIXED image

Product
survey-library
Type
Enhancement
Description
radiogroup, checkbox example: others text setting is not reactive in Vue
Product
survey-library
Type
Enhancement
Description
Allow to add array custom properties

We have to add isArray attribute into property description to let Survey know that this property is an array and should deal with it as with array property. Here is the example:

Survey.Serializer.addProperty('survey', {
  name: 'customFunctions:calculatedvalues',
  className: 'calculatedvalue', isArray: true,
  displayName: "Custom Functions", category: "logic", visibleIndex: 0,
});

The following survey doesn't work:

{
    elements: [
      {
        type: "matrixdropdown",
        name: "matrix",
        columns: [
          {
            name: "col1",
            cellType: "text",
            totalType: "sum",
            inputType: "number",
          },
          {
            name: "col2",
            cellType: "text",
            totalType: "sum",
            inputType: "number",
          },
          {
            name: "col_sum",
            cellType: "expression",
            totalType: "sum",
            expression: "{row.col1}+{row.col2}",
          },
          {
            name: "col3",
            cellType: "boolean",
            visibleIf: "false",
          },
        ],
        rows: ["row1", "row2"],
      },
    ],
    clearInvisibleValues: "onHiddenContainer"
  }

It works if remove "visibleIf" for a column or "clearInvisibleValues" property

Product
survey-library
Type
Enhancement
Description
Optionally store checkbox value as array of objects with a property name

It would be nice to share data between checkbox and panel dynamic / matrix dynamic. Currently, it is not possible because checkbox value is array of choice item value and panel/matrix dynamic is an array of objects: We can add "valuePropertyName" property, so by setting it to "fruit" the checkbox value can be stored intead of: ["banana", "apple"] as: [{ fruit: "banana" }, { fruit: "apple" }]. Additionally, we should allow to combine checkbox values with values entered in panel/matrix dynamic questions. Example of JSON:

{
    elements: [
      {
        type: "checkbox",
        name: "q1",
        valueName: "fruits",
        valuePropertyName: "fruit",
        choices: ["apple", "banana", "orange"],
      },
      {
        type: "paneldynamic",
        name: "q2",
        panelCount: 0,
        valueName: "fruits",
        templateElements: [
          {
            type: "comment",
            name: "description"
          }
        ]
      }
    ]
  }

The following code doesn't work:

  const survey = new SurveyModel({
    elements: [
      {
        type: "text",
        name: "q1",
        title: "{complex.value1}",
      }
    ]
  });
  survey.data = { complex: { value1: "complexText" } };

Text pre-processing doesn't recognize "complex.value1"

creator.onItemValueAdded event is fired on adding a new choice in the Property Grid, but is not fired on adding a new choice in question on the designer surface.

Product
survey-creator
Type
Bug
Description
Deleted object can be displayed in the property grid

If a question immediately deleted after adding the a deleted object can be showin in the property grid:

  creator.onQuestionAdded.add((sender, options) => {
    if (creator.survey.getAllQuestions().length > 1) {
      options.question.delete();
    }
  });
Product
survey-creator
Type
Enhancement
Description
Allow to render custom title on Property Grid panel

We can override display names for Property Grid Object select by using creator.onGetObjectDisplayName, with "options.reason" equals to "property-grid". However, it is impossible to have a custom selected property title, for example: "Survey Properties" or "Question1 Properties". It should be added an additional reason "property-grid-title".

    creator.onGetObjectDisplayName.add(function (sender, options) {
      if(options.reason === "property-grid-title") {
        options.displayName = options.displayName + " Properties";
      }
    });

Version: v1.9.34, released at Tuesday, June 7, 2022, Total Issue Count: 4

Product Type Description
survey-library Bug Dropdown render as select: popup has narrow width

image

survey-library Bug Could not clear localization string for default locale for a particular scenario

If JSON was created with "en" default locale and survey locale equals to "de" we can the following JSON: const survey = new Survey.SurveyModel({ title: { de: "Hallo" } }); After that if the default locale sets to "de": Survey.surveyLocalization.defaultLocale = "de"; then the following code works incorrectly:

Survey.surveyLocalization.defaultLocale = "de";
const survey = new Survey.SurveyModel({ title: { de: "Hallo" } });
let val = survey.title; //val is Hallo
survey.title = "";
val = survey.title; //val is stil Hallo.

We would expect val to be equal empty string.

survey-creator Bug V2: settings.propertyGrid.maximumChoicesCount doesn't work correctly in the property grid

The following code: choices property editor doesn't work correctly if this settng is used: SurveyCreator.settings.propertyGrid.maximumChoicesCount = 5;

survey-creator Bug V2: settings.propertyGrid.maximumChoicesCount doesn't work in question adorners

A user can add as many choices as she wants in designer since designer ignores SurveyCreator.settings.propertyGrid.maximumChoicesCount property.

Version: v1.9.34, released at Tuesday, June 7, 2022, Total Issue Count: 4

Product
survey-library
Type
Bug
Description
Dropdown render as select: popup has narrow width

image

If JSON was created with "en" default locale and survey locale equals to "de" we can the following JSON: const survey = new Survey.SurveyModel({ title: { de: "Hallo" } }); After that if the default locale sets to "de": Survey.surveyLocalization.defaultLocale = "de"; then the following code works incorrectly:

Survey.surveyLocalization.defaultLocale = "de";
const survey = new Survey.SurveyModel({ title: { de: "Hallo" } });
let val = survey.title; //val is Hallo
survey.title = "";
val = survey.title; //val is stil Hallo.

We would expect val to be equal empty string.

The following code: choices property editor doesn't work correctly if this settng is used: SurveyCreator.settings.propertyGrid.maximumChoicesCount = 5;

A user can add as many choices as she wants in designer since designer ignores SurveyCreator.settings.propertyGrid.maximumChoicesCount property.

Version: v1.9.33, released at Tuesday, May 31, 2022, Total Issue Count: 20

Product Type Description
survey-library Enhancement Allow to find out which trigger is executed

Add a new event into survey:

  /**
   * The event is fired after a trigger has been executed
   * <br/> `sender` - the survey object that fires the event.
   * <br/> `options.trigger` - An instance of a trigger that has been just perform it's action.
   * @see onComplete
   */
   public onTriggerExecuted: EventBase<SurveyModel> = this.addEvent<SurveyModel>();
survey-library Bug React: Matrix dropdown/dynamic can generate errors in react because of using state incorrectly

Matrix dropdown/dynamic matrices questions can generate an error in react. The reason, the table view model can be built on react rendering and it's generates changings in state. It is incorrect. We should generate table view model on creating react component.

survey-library Bug React: Set targetElement on componentDidUpdate for Popup component

We have to set targetElement property on componentDidUpdate after shouldComponentUpdate, because componentDidMount is not called in this case.

survey-library Enhancement Drag Drop: Mobile: disable the long tap

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

{
            "type": "ranking",
            "longTap": false,
}
survey-library Enhancement use local time by default in today() function

Add a new property into settings to control today() function behavior, by using locale or UTC time.

  /**
   * Set this value to false, if you want to have UTC fuctions, for example setUTCHours inside our functions, like today.
   * By default it uses setHours function, with local date
   */
  useLocalTimeZone: true

Use the following code to let "today(): function work with UTC time: Survey.settings.useLocalTimeZone = false;.

survey-creator Bug V2: creator options with showPropertyGrid: false generates error from v1.9.32

After re-factoring in v1.9.32 the following code is generated the error: const creator = new SurveyCreator.SurveyCreator({ showPropertyGrid: false });

survey-creator Bug V2: Adorners for React versions may keep old model

We do not update internal models in some React Components on changing props. It can lead to incorrect behavior.

survey-creator Bug V2: Preview tab doesn't work correctly if there is a start page

Preview tab hides start page and do not allow to show it. It should work with the start page as with any other pages in the Preview tab.

survey-creator Bug V2: creator options with showSidebar: true generates error from v1.9.32

After re-factoring in v1.9.32 the following code is generated the error: const creator = new SurveyCreator.SurveyCreator({ showSidebar: false });

survey-creator Bug V2: Results component in Preview tab generates error

Results rows in Preview Tab do not have unique key.

survey-creator Bug onTranslationStringVisibility doesn't work for itemvalues properties

"creator.onTranslationStringVisibility" event is not fired for choices and other properties that has "itemvalues" property type.

survey-analytics Enhancement Add paddings to chart labels
survey-analytics Enhancement Split matrix dropdown and matrix dynamic into separate column in table visualizer

For the multiple choice questions, the display should be same as single choice matrix questions with rows treated as a question and displayed in a separate column and the cell should contain the values from the columns separated by a comma.

See the https://surveyjs.answerdesk.io/ticket/details/t9146/surveyjs-tabulator thread for more details

survey-analytics Bug Custom Visualizers example: Table view no longer works
  1. Open the Custom Visualizers demo.
  2. Find the question titled "Please indicate if you agree or disagree with the following statements"
  3. Change its look from Charts to Table

image

Result: image

And the following error in the console: Uncaught ReferenceError: th is not defined

survey-analytics Bug Localized Analytics example: Issues with the dropdown and code
  • The Change Locale dropdown doesn't show the selected locale. To reproduce the issue, change the locale using the dropdown. Current behavior: The dropdown displays the phrase "Change Locale" in the selected language. Expected behavior: The selected language persists in the dropdown.
  • The example doesn't show the code that actually changes the locale.
  • The phrase "Change Locale" isn't translated to French.
survey-analytics Bug Toolbar buttons shouldn't be divided in two

"Hide empty answers" on the following image is a single button.

image

survey-analytics Bug "Show text question answers as chart" example: Bars are invisible
survey-analytics Bug Reverse the default sort order for bars

Now, the first answer in the choices array is displayed at the bottom of the chart. It is more natural to display the first answer at the top.

image

survey-analytics Bug Bar chart may leave out series points in some cases

In this example, the question "How many software developers are in your organization?" displays only 2 bars, but if you switch to one of the other chart types, you will see that there are more answers.

Bar: image

Pie: image

survey-analytics Bug Table representation for matrix question - null reference if answer doesn't exist in result

Version: v1.9.33, released at Tuesday, May 31, 2022, Total Issue Count: 20

Product
survey-library
Type
Enhancement
Description
Allow to find out which trigger is executed

Add a new event into survey:

  /**
   * The event is fired after a trigger has been executed
   * <br/> `sender` - the survey object that fires the event.
   * <br/> `options.trigger` - An instance of a trigger that has been just perform it's action.
   * @see onComplete
   */
   public onTriggerExecuted: EventBase<SurveyModel> = this.addEvent<SurveyModel>();

Matrix dropdown/dynamic matrices questions can generate an error in react. The reason, the table view model can be built on react rendering and it's generates changings in state. It is incorrect. We should generate table view model on creating react component.

Product
survey-library
Type
Bug
Description
React: Set targetElement on componentDidUpdate for Popup component

We have to set targetElement property on componentDidUpdate after shouldComponentUpdate, because componentDidMount is not called in this case.

Product
survey-library
Type
Enhancement
Description
Drag Drop: Mobile: disable the long tap

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

{
            "type": "ranking",
            "longTap": false,
}
Product
survey-library
Type
Enhancement
Description
use local time by default in today() function

Add a new property into settings to control today() function behavior, by using locale or UTC time.

  /**
   * Set this value to false, if you want to have UTC fuctions, for example setUTCHours inside our functions, like today.
   * By default it uses setHours function, with local date
   */
  useLocalTimeZone: true

Use the following code to let "today(): function work with UTC time: Survey.settings.useLocalTimeZone = false;.

After re-factoring in v1.9.32 the following code is generated the error: const creator = new SurveyCreator.SurveyCreator({ showPropertyGrid: false });

Product
survey-creator
Type
Bug
Description
V2: Adorners for React versions may keep old model

We do not update internal models in some React Components on changing props. It can lead to incorrect behavior.

Product
survey-creator
Type
Bug
Description
V2: Preview tab doesn't work correctly if there is a start page

Preview tab hides start page and do not allow to show it. It should work with the start page as with any other pages in the Preview tab.

After re-factoring in v1.9.32 the following code is generated the error: const creator = new SurveyCreator.SurveyCreator({ showSidebar: false });

Product
survey-creator
Type
Bug
Description
V2: Results component in Preview tab generates error

Results rows in Preview Tab do not have unique key.

Product
survey-creator
Type
Bug
Description
onTranslationStringVisibility doesn't work for itemvalues properties

"creator.onTranslationStringVisibility" event is not fired for choices and other properties that has "itemvalues" property type.

Product
survey-analytics
Type
Enhancement
Description
Add paddings to chart labels
Product
survey-analytics
Type
Enhancement
Description
Split matrix dropdown and matrix dynamic into separate column in table visualizer

For the multiple choice questions, the display should be same as single choice matrix questions with rows treated as a question and displayed in a separate column and the cell should contain the values from the columns separated by a comma.

See the https://surveyjs.answerdesk.io/ticket/details/t9146/surveyjs-tabulator thread for more details

Product
survey-analytics
Type
Bug
Description
Custom Visualizers example: Table view no longer works
  1. Open the Custom Visualizers demo.
  2. Find the question titled "Please indicate if you agree or disagree with the following statements"
  3. Change its look from Charts to Table

image

Result: image

And the following error in the console: Uncaught ReferenceError: th is not defined

Product
survey-analytics
Type
Bug
Description
Localized Analytics example: Issues with the dropdown and code
  • The Change Locale dropdown doesn't show the selected locale. To reproduce the issue, change the locale using the dropdown. Current behavior: The dropdown displays the phrase "Change Locale" in the selected language. Expected behavior: The selected language persists in the dropdown.
  • The example doesn't show the code that actually changes the locale.
  • The phrase "Change Locale" isn't translated to French.
Product
survey-analytics
Type
Bug
Description
Toolbar buttons shouldn't be divided in two

"Hide empty answers" on the following image is a single button.

image

Product
survey-analytics
Type
Bug
Description
"Show text question answers as chart" example: Bars are invisible
Product
survey-analytics
Type
Bug
Description
Reverse the default sort order for bars

Now, the first answer in the choices array is displayed at the bottom of the chart. It is more natural to display the first answer at the top.

image

Product
survey-analytics
Type
Bug
Description
Bar chart may leave out series points in some cases

In this example, the question "How many software developers are in your organization?" displays only 2 bars, but if you switch to one of the other chart types, you will see that there are more answers.

Bar: image

Pie: image

Version: v1.9.32, released at Wednesday, May 25, 2022, Total Issue Count: 20

Product Type Description
survey-library Bug Official timeline for React 18 support?

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

Question

What is the current behavior?

No official React 18 support

What is the expected behavior?

Official React 18 support

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

Install with React 18

I couldn't find a ticket on official React 18 support so thought it would be nice for the community to have some visibility on this.

survey-library Enhancement Allow to have surveys with different locales on the same page

Right now it is impossible to have two surveys on English and Spanish on the same page. It brings issues in SurveyJS Creator V2, since we can have Property Grid in English (using our survey) and survey on designer surface in Spanish. As result, it starts work incorrectly and survey on designer surface may show incorrect locale strings.

survey-library Bug matrixdropdown column renderAs property doesn't apply to template question immediately

Chaning "renderAs" property for matrixdropdown column doesn't apply immediately for a template question. As result, since this property is dynamic and based on cellType, it leads to incorrect behavior in the property grid in Creator V2.

survey-library Bug panel/page focusFirstErrorQuestion function doesn't work for matrix dynamic and panel dynamic

If there are errors in matrix dynamic (matrix cell question) or in panel dynamic (in question inside the panel) then panel/page "focusFirstErrorQuestion" function doesn't work.

survey-library Bug Allow to apply css for composite questions based on their name / type

There is no way to apply a different css style for a different composite questions using global css. For example, if you have a composite question: "customerinfo" you should set it's style as: survey.css["customerinfo"] = { mainRoot: "customercss" };. It works for all other questions.

survey-library Enhancement Add into survey base object isDescendantOf function

We have getType() function that returns the object type. Sometimes you need to know if the object instance is inherited from another object. For example, is the question "dropdown" or inherited from "dropdown". In this case obj.getType() === "dropdown" will not work and it should be used obj.isDescendantOf("dropdown"); in this case.

survey-library Bug Drag&Drop issue with questions in one line

If there are several questions in one line, then trying to insert a new question between these questions and a question with a new line generates incorrect result.

survey-creator Bug Logic tab: Dropdown editors display items that cannot be selected

For instance, the following screencast shows a numeric nps_score question that doesn't accept contains and some other operations. It makes sense because these operations are valid only for string question, but in this case why are they on the list? We need to filter the drop-down values.

https://www.screencast.com/t/vXoQM4qe

survey-creator Bug Choices by URL tab contains an unnecessary subsection

image

survey-creator Bug Check styles for results section

image

survey-creator Enhancement Show "Show Settings" regardless of window size.
survey-creator Bug V2, Bug: text of the items of the non-default localised Survey in Designer Tab

Steps to reproduce:

  1. Set survey locale to non-default locale via property grid
  2. Add boolean question: on this step Yes/No labels are localised correctly
  3. Click on Preview Tab
  4. Click on Designer Tab
  5. boolean localised labels are reset to labels with default Yes/No
survey-creator Bug Fix string editor issue in Safari

In-line editing of (for instance) question titles or choices does not work in Safari (running safari version 14.1.1).

survey-creator Bug The property grid is invisible when new creator tab added in V1
survey-creator Bug Clear filter by page action in translation tab on reseting design survey

If a developer reset/change the existing survey when translation tab is opening then filter by page action should be set to "All pages".

survey-creator Enhancement V2: Allow change default toolbox question JSON via settings

We do not have the easy way to change the default question JSON when a user creates a new question on designer. It should be as easy as:

SurveyCreatorCore.settings.toolbox.defaultJSON["image"] = 
  { imageLink : "https://www.rd.com/wp-content/uploads/2021/04/GettyImages-141809950.jpg" };
survey-creator Bug Use obj.isDescendantOf to get component wrapper name

We should use isDescendantOf() function instead of getType() function for getting correct component wrapper name. Otherwise new questions types inherited from our standard questions will not work correctly in Creator V2.

survey-creator Bug V2: Toolbox items in popup are draggable when Creator is read only
survey-analytics Bug Survey Tabulator allows code injection

Hello SurveyJS team,

the survey tabulator does not escape script tags correcltly.

I have taken the the survey tabulator example and added a HTML button with a onclick handler on it and it executes. This is a security issue and should not be the case. https://plnkr.co/edit/J99S1lklsPL6d27J

The survey editor and survey display component escape this correctly.

Best Johannes

survey-analytics Bug Allow getting an element for the Visualization Panel by `id`

Now:

var surveyResultNode = document.getElementById("surveyDashboard");
surveyResultNode.innerHTML = "";
visPanel.render(surveyResultNode);

Suggestion:

visPanel.render("surveyDashboard");

Version: v1.9.32, released at Wednesday, May 25, 2022, Total Issue Count: 20

Product
survey-library
Type
Bug
Description
Official timeline for React 18 support?

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

Question

What is the current behavior?

No official React 18 support

What is the expected behavior?

Official React 18 support

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

Install with React 18

I couldn't find a ticket on official React 18 support so thought it would be nice for the community to have some visibility on this.

Product
survey-library
Type
Enhancement
Description
Allow to have surveys with different locales on the same page

Right now it is impossible to have two surveys on English and Spanish on the same page. It brings issues in SurveyJS Creator V2, since we can have Property Grid in English (using our survey) and survey on designer surface in Spanish. As result, it starts work incorrectly and survey on designer surface may show incorrect locale strings.

Chaning "renderAs" property for matrixdropdown column doesn't apply immediately for a template question. As result, since this property is dynamic and based on cellType, it leads to incorrect behavior in the property grid in Creator V2.

If there are errors in matrix dynamic (matrix cell question) or in panel dynamic (in question inside the panel) then panel/page "focusFirstErrorQuestion" function doesn't work.

Product
survey-library
Type
Bug
Description
Allow to apply css for composite questions based on their name / type

There is no way to apply a different css style for a different composite questions using global css. For example, if you have a composite question: "customerinfo" you should set it's style as: survey.css["customerinfo"] = { mainRoot: "customercss" };. It works for all other questions.

Product
survey-library
Type
Enhancement
Description
Add into survey base object isDescendantOf function

We have getType() function that returns the object type. Sometimes you need to know if the object instance is inherited from another object. For example, is the question "dropdown" or inherited from "dropdown". In this case obj.getType() === "dropdown" will not work and it should be used obj.isDescendantOf("dropdown"); in this case.

Product
survey-library
Type
Bug
Description
Drag&Drop issue with questions in one line

If there are several questions in one line, then trying to insert a new question between these questions and a question with a new line generates incorrect result.

Product
survey-creator
Type
Bug
Description
Logic tab: Dropdown editors display items that cannot be selected

For instance, the following screencast shows a numeric nps_score question that doesn't accept contains and some other operations. It makes sense because these operations are valid only for string question, but in this case why are they on the list? We need to filter the drop-down values.

https://www.screencast.com/t/vXoQM4qe

Product
survey-creator
Type
Bug
Description
Choices by URL tab contains an unnecessary subsection

image

Product
survey-creator
Type
Bug
Description
Check styles for results section

image

Product
survey-creator
Type
Enhancement
Description
Show "Show Settings" regardless of window size.

Steps to reproduce:

  1. Set survey locale to non-default locale via property grid
  2. Add boolean question: on this step Yes/No labels are localised correctly
  3. Click on Preview Tab
  4. Click on Designer Tab
  5. boolean localised labels are reset to labels with default Yes/No
Product
survey-creator
Type
Bug
Description
Fix string editor issue in Safari

In-line editing of (for instance) question titles or choices does not work in Safari (running safari version 14.1.1).

Product
survey-creator
Type
Bug
Description
The property grid is invisible when new creator tab added in V1

If a developer reset/change the existing survey when translation tab is opening then filter by page action should be set to "All pages".

Product
survey-creator
Type
Enhancement
Description
V2: Allow change default toolbox question JSON via settings

We do not have the easy way to change the default question JSON when a user creates a new question on designer. It should be as easy as:

SurveyCreatorCore.settings.toolbox.defaultJSON["image"] = 
  { imageLink : "https://www.rd.com/wp-content/uploads/2021/04/GettyImages-141809950.jpg" };
Product
survey-creator
Type
Bug
Description
Use obj.isDescendantOf to get component wrapper name

We should use isDescendantOf() function instead of getType() function for getting correct component wrapper name. Otherwise new questions types inherited from our standard questions will not work correctly in Creator V2.

Product
survey-creator
Type
Bug
Description
V2: Toolbox items in popup are draggable when Creator is read only
Product
survey-analytics
Type
Bug
Description
Survey Tabulator allows code injection

Hello SurveyJS team,

the survey tabulator does not escape script tags correcltly.

I have taken the the survey tabulator example and added a HTML button with a onclick handler on it and it executes. This is a security issue and should not be the case. https://plnkr.co/edit/J99S1lklsPL6d27J

The survey editor and survey display component escape this correctly.

Best Johannes

Product
survey-analytics
Type
Bug
Description
Allow getting an element for the Visualization Panel by `id`

Now:

var surveyResultNode = document.getElementById("surveyDashboard");
surveyResultNode.innerHTML = "";
visPanel.render(surveyResultNode);

Suggestion:

visPanel.render("surveyDashboard");

Version: v1.9.31, released at Wednesday, May 18, 2022, Total Issue Count: 1

Product Type Description
survey-library Enhancement Implement the "hint" property for a matrix column

Some users request column title different form column title: e.g. if they are using markdown.

See the https://surveyjs.answerdesk.io/ticket/details/t9444/markdown-matrix-tooltip-on-matrix-cells-is-broken-shows-the-html-values thread for more deatils

Version: v1.9.31, released at Wednesday, May 18, 2022, Total Issue Count: 1

Product
survey-library
Type
Enhancement
Description
Implement the "hint" property for a matrix column

Some users request column title different form column title: e.g. if they are using markdown.

See the https://surveyjs.answerdesk.io/ticket/details/t9444/markdown-matrix-tooltip-on-matrix-cells-is-broken-shows-the-html-values thread for more deatils

Version: v1.9.30, released at Tuesday, May 17, 2022, Total Issue Count: 6

Product Type Description
survey-creator Bug NPS Survey demo: The Required adorner in the first question doesn't change its appearance
survey-creator Bug Fix Creator Responsivity on Retina and 4K displays
survey-creator Bug V2: A new question can be inserted into wrong position when panel is selected

If there are several questions inside a panel and user select the panel then after clicking "Add new Question" on Panel footer, a new question can be added in the middle of other questions.

survey-creator Enhancement V2: Add creator.onPropertyGridSurveyCreated event
We do not have an event, that fires after property grid survey is setup. Here the event declaration:
  /**
   * The event is called after a survey that represents the Property Grid is created and all its questions (property editors) are setup.
   * You can use this event to modify this survey to change the property grid behavior
   * <br/> options.obj the survey object that is currently editing in the property grid
   * <br/> options.survey the property grid survey
   */
   public onPropertyGridSurveyCreated: Survey.Event<(sender: CreatorBase, options: any) => any, any>
survey-creator Enhancement V2: Add onSurveyPropertyValueChanged event

Developer can use onModified event to find that property has been changed. It is better to have it's own event since it used a lot.

  /**
   * The event is fired when a property in any survey object object is changed.
   * <br/> sender the survey creator object that fires the event
   * <br/> options.obj the survey object which property has been changed.
   * <br/> options.propertyName  the name of the changed property.
   * <br/> options.value the property value.
   * @see onPropertyValidationCustomError
   * @see onPropertyValueChanging
   */
   public onSurveyPropertyValueChanged: Survey.Event< (sender: CreatorBase, options: any) => any, any>
survey-pdf Bug Wrong html as image size

Version: v1.9.30, released at Tuesday, May 17, 2022, Total Issue Count: 6

Product
survey-creator
Type
Bug
Description
Fix Creator Responsivity on Retina and 4K displays

If there are several questions inside a panel and user select the panel then after clicking "Add new Question" on Panel footer, a new question can be added in the middle of other questions.

Product
survey-creator
Type
Enhancement
Description
V2: Add creator.onPropertyGridSurveyCreated event
We do not have an event, that fires after property grid survey is setup. Here the event declaration:
  /**
   * The event is called after a survey that represents the Property Grid is created and all its questions (property editors) are setup.
   * You can use this event to modify this survey to change the property grid behavior
   * <br/> options.obj the survey object that is currently editing in the property grid
   * <br/> options.survey the property grid survey
   */
   public onPropertyGridSurveyCreated: Survey.Event<(sender: CreatorBase, options: any) => any, any>
Product
survey-creator
Type
Enhancement
Description
V2: Add onSurveyPropertyValueChanged event

Developer can use onModified event to find that property has been changed. It is better to have it's own event since it used a lot.

  /**
   * The event is fired when a property in any survey object object is changed.
   * <br/> sender the survey creator object that fires the event
   * <br/> options.obj the survey object which property has been changed.
   * <br/> options.propertyName  the name of the changed property.
   * <br/> options.value the property value.
   * @see onPropertyValidationCustomError
   * @see onPropertyValueChanging
   */
   public onSurveyPropertyValueChanged: Survey.Event< (sender: CreatorBase, options: any) => any, any>
Product
survey-pdf
Type
Bug
Description
Wrong html as image size

Version: v1.9.29, released at Wednesday, May 11, 2022, Total Issue Count: 7

Product Type Description
survey-library Enhancement Performance issue: Adding new panel in panel dynamic in some condition can be slow

If a panel dynamic has dropdowns with "others"/"comments" values, adding new panel with several existing panels is extremely slow.

survey-library Enhancement Set name for generated pages for questionOnPage mode as question name

It is hard to find an autogenerated page by name for "survey.questionsOnPageMode" property equals to "questionOnPage". It is better to set the same name as a question name.

survey-library Bug Error is not show for text question on usign min/max properties and checkModeError onValueChanged

The following survey doesn't work correctly. It shows erros on complete/next page, instead of on value changed.

{
   "elements": [
    {
     "type": "text",
     "name": "question1",
     "inputType": "number",
     "min": 1,
     "max": 4
    }
 ],
 "checkErrorsMode": "onValueChanged"
}
survey-library Bug defaultValueExpression doesn't work for boolean question

The following JSON doesn't work correctly:

{
    elements: [
      { type: "boolean", name: "q1", defaultValueExpression: "true" },
    ],
  }

Question should have "true" value, but it has "false".

survey-library Bug Do not allow to addPanelUI for panel dynamic question if the current panel has errors

If dynamic panel has a "renderMode" value different from "list", display one panel at a time, then we do not allow to go to another panel if there is an error on the current. However we allow to add a new panel, which is inconsistent. We have to show errors and do not allow to add a new panel if there are errors on the current panel.

survey-library Bug setting survey data doesn't work for a select question with visibleIf in choices

The following code doesn't work correctly. The "q2" value is "other", instead of "item2".

  const survey = new SurveyModel({
    elements: [
      {
        type: "checkbox",
        name: "q1",
        choices: ["apple", "banana", "orange"],
      },
      {
        type: "radiogroup",
        name: "q2",
        choices: [
          "item1",
          {
            value: "item2",
            visibleIf: "{q1} = ['apple']",
          },
          "item3",
        ],
        hasOther: true,
      },
    ],
  });
  survey.data = {
    q2: "item2",
    q1: ["apple"],
  };

survey-pdf Bug The html in image mode is blur

Version: v1.9.29, released at Wednesday, May 11, 2022, Total Issue Count: 7

If a panel dynamic has dropdowns with "others"/"comments" values, adding new panel with several existing panels is extremely slow.

Product
survey-library
Type
Enhancement
Description
Set name for generated pages for questionOnPage mode as question name

It is hard to find an autogenerated page by name for "survey.questionsOnPageMode" property equals to "questionOnPage". It is better to set the same name as a question name.

The following survey doesn't work correctly. It shows erros on complete/next page, instead of on value changed.

{
   "elements": [
    {
     "type": "text",
     "name": "question1",
     "inputType": "number",
     "min": 1,
     "max": 4
    }
 ],
 "checkErrorsMode": "onValueChanged"
}
Product
survey-library
Type
Bug
Description
defaultValueExpression doesn't work for boolean question

The following JSON doesn't work correctly:

{
    elements: [
      { type: "boolean", name: "q1", defaultValueExpression: "true" },
    ],
  }

Question should have "true" value, but it has "false".

If dynamic panel has a "renderMode" value different from "list", display one panel at a time, then we do not allow to go to another panel if there is an error on the current. However we allow to add a new panel, which is inconsistent. We have to show errors and do not allow to add a new panel if there are errors on the current panel.

The following code doesn't work correctly. The "q2" value is "other", instead of "item2".

  const survey = new SurveyModel({
    elements: [
      {
        type: "checkbox",
        name: "q1",
        choices: ["apple", "banana", "orange"],
      },
      {
        type: "radiogroup",
        name: "q2",
        choices: [
          "item1",
          {
            value: "item2",
            visibleIf: "{q1} = ['apple']",
          },
          "item3",
        ],
        hasOther: true,
      },
    ],
  });
  survey.data = {
    q2: "item2",
    q1: ["apple"],
  };

Product
survey-pdf
Type
Bug
Description
The html in image mode is blur

Version: v1.9.28, released at Thursday, May 5, 2022, Total Issue Count: 9

Product Type Description
survey-library Bug The markdown matrix is broken if the window is small and the matrix becomes vertical.
survey-library Bug OnValueChanging is triggered a second time after OnValueChanged on custom question type

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

Bug

What is the current behavior?

OnValueChanging is triggered an additional time after OnValueChanged on custom question types

  • onValueChanging is triggered
(index) Values
oldValue undefined
value 'abc
  • onValueChanged is triggered

  • onValueChanging is triggered again

(index) Values
oldValue 'abc'
value 'abc

What is the expected behavior?

OnValueChanging is only triggered once before OnValueChanged

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

Please refer to the this repository with a simple reproduction of the bug. I added one use case of known type text and one for a custom type with it's questionJSON being of type text for comparison.

I am currently overriding this behaviour with the following piece of code:

valueChangingHandler = (sender, options) => {
    if(options.oldValue === options.value) {
        console.warn('onValueChanging execution with equal values', options.question, options.oldValue, options.value)
        return;
    }
    ...
} 

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

Specify your

I am using survey-core as a backbone for a custom survey system.

  • browser: /
  • browser version: /
  • surveyjs platform (angular or react or jquery or knockout or vue): /
  • surveyjs version: 1.9.27 (most recent)
survey-library Bug Bug: onShowingPreview doesn't get called if onServerValidateQuestions is set

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

Reporting a bug.

What is the current behavior?

onShowingPreview doesn't get called when onServerValidateQuestions is set.

What is the expected behavior?

onShowingPreview should be called even if onServerValidateQuestions is set.

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

Using the test page provided below, you'll notice that onShowingPreview is never printed unless you remove the assignment of the onServerValidateQuestions event on the survey.

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

Tested page URL: https://plnkr.co/edit/6Sy4Rx5lK9rjA9eD

Test code

Survey
    .StylesManager
    .applyTheme("modern");

//assign call to onServerValidateQuestions callback
function surveyValidateQuestion(survey, options) {
    options.complete();
}

//assign call to onShowingPreview callback
function showingPreview(survey, options){
    console.log("onShowingPreview");
}

var json = {
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "boolean",
     "name": "question1",
     "isRequired": true
    }
   ]
  },
  {
   "name": "page2",
   "elements": [
    {
     "type": "boolean",
     "name": "question2",
     "isRequired": true
    }
   ]
  }
 ],
 "showPreviewBeforeComplete": "showAllQuestions"
};

window.survey = new Survey.Model(json);

survey
    .onComplete
    .add(function (sender) {
        document
            .querySelector('#surveyResult')
            .textContent = "Result JSON:\n" + JSON.stringify(sender.data, null, 3);
    });

survey
    .onShowingPreview
    .add(showingPreview);

survey
    .onServerValidateQuestions
    .add(surveyValidateQuestion);

$("#surveyElement").Survey({model: survey});

Specify your

  • browser: Microsoft Edge
  • browser version: 100.0.1185.50
  • surveyjs platform (angular or react or jquery or knockout or vue): jquery
  • surveyjs version: 1.9.20
survey-library Enhancement Allow to render matrix remove rows action as button in defaultV2

In defaultV2 remove rows actions rendered as icons. A new setting is introduced to render these actions as buttons. Survey.settings.matrixRenderRemoveAsIcon = false;.

survey-library Bug Bug: read-only columns stop working on changing survey mode from "display" to "edit"

The original issue was reported on SurveyJS Support forum.

{
    elements: [
      {
        type: "matrixdynamic",
        name: "question1",
        rowCount: 1,
        columns: [
          {
            name: "Column1",
          },
          {
            name: "Column2",
            readOnly: true
          },
        ],
        cellType: "text",
      },
    ],
  }

The second column becomes editable after the following code:

survey.mode = "display";
survey.mode = "edit"
survey-creator Enhancement DND: From Toolbox: Shortcut text

shortcut text should contain question type instead of generated new question name

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

survey-creator Bug Test-plugin getComputedStyles argument may be null
survey-creator Enhancement V2: Allow to change default question type for "Add Question" button

Right now, Creator V2 has "text" as default question type in "Add Question" button and there is no way to change it. We need to add a new setting to allow chaning this type. SurveyCreator.settings.designer.defaultAddQuestionType = "dropdown";

survey-creator Enhancement V2: Allow to hide "Add New Question" button on design surface

Use the following code to hide "Add New Question" buttons on page and panel on design surface: SurveyCreator.settings.designer.showAddQuestionButton = false;

Version: v1.9.28, released at Thursday, May 5, 2022, Total Issue Count: 9

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

Bug

What is the current behavior?

OnValueChanging is triggered an additional time after OnValueChanged on custom question types

  • onValueChanging is triggered
(index) Values
oldValue undefined
value 'abc
  • onValueChanged is triggered

  • onValueChanging is triggered again

(index) Values
oldValue 'abc'
value 'abc

What is the expected behavior?

OnValueChanging is only triggered once before OnValueChanged

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

Please refer to the this repository with a simple reproduction of the bug. I added one use case of known type text and one for a custom type with it's questionJSON being of type text for comparison.

I am currently overriding this behaviour with the following piece of code:

valueChangingHandler = (sender, options) => {
    if(options.oldValue === options.value) {
        console.warn('onValueChanging execution with equal values', options.question, options.oldValue, options.value)
        return;
    }
    ...
} 

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

Specify your

I am using survey-core as a backbone for a custom survey system.

  • browser: /
  • browser version: /
  • surveyjs platform (angular or react or jquery or knockout or vue): /
  • surveyjs version: 1.9.27 (most recent)

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

Reporting a bug.

What is the current behavior?

onShowingPreview doesn't get called when onServerValidateQuestions is set.

What is the expected behavior?

onShowingPreview should be called even if onServerValidateQuestions is set.

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

Using the test page provided below, you'll notice that onShowingPreview is never printed unless you remove the assignment of the onServerValidateQuestions event on the survey.

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

Tested page URL: https://plnkr.co/edit/6Sy4Rx5lK9rjA9eD

Test code

Survey
    .StylesManager
    .applyTheme("modern");

//assign call to onServerValidateQuestions callback
function surveyValidateQuestion(survey, options) {
    options.complete();
}

//assign call to onShowingPreview callback
function showingPreview(survey, options){
    console.log("onShowingPreview");
}

var json = {
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "boolean",
     "name": "question1",
     "isRequired": true
    }
   ]
  },
  {
   "name": "page2",
   "elements": [
    {
     "type": "boolean",
     "name": "question2",
     "isRequired": true
    }
   ]
  }
 ],
 "showPreviewBeforeComplete": "showAllQuestions"
};

window.survey = new Survey.Model(json);

survey
    .onComplete
    .add(function (sender) {
        document
            .querySelector('#surveyResult')
            .textContent = "Result JSON:\n" + JSON.stringify(sender.data, null, 3);
    });

survey
    .onShowingPreview
    .add(showingPreview);

survey
    .onServerValidateQuestions
    .add(surveyValidateQuestion);

$("#surveyElement").Survey({model: survey});

Specify your

  • browser: Microsoft Edge
  • browser version: 100.0.1185.50
  • surveyjs platform (angular or react or jquery or knockout or vue): jquery
  • surveyjs version: 1.9.20
Product
survey-library
Type
Enhancement
Description
Allow to render matrix remove rows action as button in defaultV2

In defaultV2 remove rows actions rendered as icons. A new setting is introduced to render these actions as buttons. Survey.settings.matrixRenderRemoveAsIcon = false;.

The original issue was reported on SurveyJS Support forum.

{
    elements: [
      {
        type: "matrixdynamic",
        name: "question1",
        rowCount: 1,
        columns: [
          {
            name: "Column1",
          },
          {
            name: "Column2",
            readOnly: true
          },
        ],
        cellType: "text",
      },
    ],
  }

The second column becomes editable after the following code:

survey.mode = "display";
survey.mode = "edit"
Product
survey-creator
Type
Enhancement
Description
DND: From Toolbox: Shortcut text

shortcut text should contain question type instead of generated new question name

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

Product
survey-creator
Type
Bug
Description
Test-plugin getComputedStyles argument may be null
Product
survey-creator
Type
Enhancement
Description
V2: Allow to change default question type for "Add Question" button

Right now, Creator V2 has "text" as default question type in "Add Question" button and there is no way to change it. We need to add a new setting to allow chaning this type. SurveyCreator.settings.designer.defaultAddQuestionType = "dropdown";

Product
survey-creator
Type
Enhancement
Description
V2: Allow to hide "Add New Question" button on design surface

Use the following code to hide "Add New Question" buttons on page and panel on design surface: SurveyCreator.settings.designer.showAddQuestionButton = false;

Version: v1.9.27, released at Wednesday, April 27, 2022, Total Issue Count: 9

Product Type Description
survey-library Bug Knockout: onProcessHtml events doesn't work

onProcessHtml event not fired for html question in knockout

survey-library Bug knockout: dropdown is not updated options on changing survey locale

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

Bug

What is the current behavior?

When creating a matrix multiple choice question you can override the choices for a column by settings the cell type to dropdown instead of default. Then using the translation tab you can translate these choices.

What is the expected behavior?

I expected the translations for the column specific choices to be used, but they are not. Note that even the primary choices are not translated (tested via the preview tab)

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

{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdropdown",
     "name": "question1",
     "columns": [
      {
       "name": "Column 1",
       "cellType": "dropdown",
       "choices": [
        {
         "value": "item1",
         "text": {
          "default": "A",
          "nl": "A1"
         }
        },
        {
         "value": "item2",
         "text": {
          "default": "B",
          "nl": "B2"
         }
        },
        {
         "value": "item3",
         "text": {
          "default": "C",
          "nl": "C2"
         }
        }
       ]
      },
      {
       "name": "Column 2"
      },
      {
       "name": "Column 3"
      }
     ],
     "choices": [
      {
       "value": 1,
       "text": {
        "default": "E1",
        "nl": "D1"
       }
      },
      {
       "value": 2,
       "text": {
        "default": "E2",
        "nl": "D2"
       }
      },
      {
       "value": 3,
       "text": {
        "default": "E3",
        "nl": "D3"
       }
      },
      {
       "value": 4,
       "text": {
        "default": "E4",
        "nl": "D4"
       }
      },
      {
       "value": 5,
       "text": {
        "default": "E5",
        "nl": "D5"
       }
      }
     ],
     "rows": [
      "Row 1",
      "Row 2"
     ]
    }
   ]
  }
 ]
}

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

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

Specify your

  • browser: Brave
  • browser version: latest
  • surveyjs platform (angular or react or jquery or knockout or vue): knockout
  • surveyjs version: latest
survey-library Bug Custom widgets are not updated on changing locale in matrix and panel dynamic questions

Due a bug, custom widgets are not updated on changing locale if it is located in matrix cell or in dynamic panel.

survey-library Bug Bindings doesn't work inside panel dynamic

The following json doesn't work correctly. Binding for nested matrix doesn't work:

{
    elements: [
      {
        type: "paneldynamic",
        name: "panel1",
        panelCount: 2,
        templateElements: [
          { type: "text", name: "q1" },
          {
            type: "matrixdynamic",
            name: "q2",
            bindings: {
              "rowCount": "q1"
            },
            columns: [
              { name: "col1" }
            ]
          }
        ],
      }
    ],
  }
survey-creator Enhancement V2: Implement zoom for devices in Preview Tab
survey-creator Bug Field resize triggers drag and drop instead
survey-creator Enhancement V2: Could not easily add property into detail form for itemvalue

The following code should add a new property into detail form for itemvalue without addition coding.

Survey.Serializer.addProperty("itemvalue", 
    { name: "prop1", category: "general", choices: ["item1", "item2"], showMode: "form" }
);
survey-creator Enhancement V2: Allow to change Creator localization on the fly

New "locale" property is added into Creator. To change locale, please use the following code:

creator.locale = "de";

survey-creator Bug V2: could not drag a new question on text "The survey is empty. ..."

End-user can't drag on text "The survey is empty. Drag an element from the toolbox or click the button below."

Version: v1.9.27, released at Wednesday, April 27, 2022, Total Issue Count: 9

Product
survey-library
Type
Bug
Description
Knockout: onProcessHtml events doesn't work

onProcessHtml event not fired for html question in knockout

Product
survey-library
Type
Bug
Description
knockout: dropdown is not updated options on changing survey locale

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

Bug

What is the current behavior?

When creating a matrix multiple choice question you can override the choices for a column by settings the cell type to dropdown instead of default. Then using the translation tab you can translate these choices.

What is the expected behavior?

I expected the translations for the column specific choices to be used, but they are not. Note that even the primary choices are not translated (tested via the preview tab)

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

{
 "logoPosition": "right",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdropdown",
     "name": "question1",
     "columns": [
      {
       "name": "Column 1",
       "cellType": "dropdown",
       "choices": [
        {
         "value": "item1",
         "text": {
          "default": "A",
          "nl": "A1"
         }
        },
        {
         "value": "item2",
         "text": {
          "default": "B",
          "nl": "B2"
         }
        },
        {
         "value": "item3",
         "text": {
          "default": "C",
          "nl": "C2"
         }
        }
       ]
      },
      {
       "name": "Column 2"
      },
      {
       "name": "Column 3"
      }
     ],
     "choices": [
      {
       "value": 1,
       "text": {
        "default": "E1",
        "nl": "D1"
       }
      },
      {
       "value": 2,
       "text": {
        "default": "E2",
        "nl": "D2"
       }
      },
      {
       "value": 3,
       "text": {
        "default": "E3",
        "nl": "D3"
       }
      },
      {
       "value": 4,
       "text": {
        "default": "E4",
        "nl": "D4"
       }
      },
      {
       "value": 5,
       "text": {
        "default": "E5",
        "nl": "D5"
       }
      }
     ],
     "rows": [
      "Row 1",
      "Row 2"
     ]
    }
   ]
  }
 ]
}

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

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

Specify your

  • browser: Brave
  • browser version: latest
  • surveyjs platform (angular or react or jquery or knockout or vue): knockout
  • surveyjs version: latest

Due a bug, custom widgets are not updated on changing locale if it is located in matrix cell or in dynamic panel.

Product
survey-library
Type
Bug
Description
Bindings doesn't work inside panel dynamic

The following json doesn't work correctly. Binding for nested matrix doesn't work:

{
    elements: [
      {
        type: "paneldynamic",
        name: "panel1",
        panelCount: 2,
        templateElements: [
          { type: "text", name: "q1" },
          {
            type: "matrixdynamic",
            name: "q2",
            bindings: {
              "rowCount": "q1"
            },
            columns: [
              { name: "col1" }
            ]
          }
        ],
      }
    ],
  }
Product
survey-creator
Type
Enhancement
Description
V2: Implement zoom for devices in Preview Tab
Product
survey-creator
Type
Bug
Description
Field resize triggers drag and drop instead
Product
survey-creator
Type
Enhancement
Description
V2: Could not easily add property into detail form for itemvalue

The following code should add a new property into detail form for itemvalue without addition coding.

Survey.Serializer.addProperty("itemvalue", 
    { name: "prop1", category: "general", choices: ["item1", "item2"], showMode: "form" }
);
Product
survey-creator
Type
Enhancement
Description
V2: Allow to change Creator localization on the fly

New "locale" property is added into Creator. To change locale, please use the following code:

creator.locale = "de";

Product
survey-creator
Type
Bug
Description
V2: could not drag a new question on text "The survey is empty. ..."

End-user can't drag on text "The survey is empty. Drag an element from the toolbox or click the button below."

Version: v1.9.26, released at Wednesday, April 20, 2022, Total Issue Count: 2

Product Type Description
survey-library Enhancement Allow to add a custom condition/expression property integrated into class

Consider, in your survey/form system you want to hide/show matrix header based on expression and allow your Creator user to set this expression. Right now it will require a lot of code, how, it can be as simple as the following:

Survey.Serializer.addProperty("matrix", { name: "showHeaderIf:condition", category: "logic",
   onExecuteExpression: (obj, res) => { obj.showHeader = res === true; }
});
survey-analytics Bug Matrix: HoverTexts (long tick labels) problem

we need a way to see full tick (y) label with matrix question. And the way we could do it is custom hovertext

image

Version: v1.9.26, released at Wednesday, April 20, 2022, Total Issue Count: 2

Product
survey-library
Type
Enhancement
Description
Allow to add a custom condition/expression property integrated into class

Consider, in your survey/form system you want to hide/show matrix header based on expression and allow your Creator user to set this expression. Right now it will require a lot of code, how, it can be as simple as the following:

Survey.Serializer.addProperty("matrix", { name: "showHeaderIf:condition", category: "logic",
   onExecuteExpression: (obj, res) => { obj.showHeader = res === true; }
});
Product
survey-analytics
Type
Bug
Description
Matrix: HoverTexts (long tick labels) problem

we need a way to see full tick (y) label with matrix question. And the way we could do it is custom hovertext

image

Version: v1.9.25, released at Friday, April 15, 2022, Total Issue Count: 6

Product Type Description
survey-library Bug Change implementation of using completedHtml, completedBeforeHtml and loadingHtml survey localization strings

SurveyJS uses old approach for completedHtml, completedBeforeHtml and loadingHtml survey properties. As result, Creator property grid doesn't show the default value for these properties.

survey-library Bug MatrixColumn: Change questionTemplate property before changing cellType

Creator V2 requires questionTemplate be ready right after cellType property is changed. It means we have to change questionTemplate before chaning cellType.

survey-library Bug visible attribute for text min/max property doesn't work for matrix column

The bug is reproduced in Creator V2. On selecting column and setting cellType to "text", properties "min" and "max" are not become visible if inputType is "number"

survey-library Bug Buttongroup css classes are not assigned if StylesManager.appyTheme("defaultV2") was provided
survey-library Bug survey.fromJSON() doesn't work correctly

The survey "activePage" is not updated after calling "fromJSON" function as well as navigation bar.

survey-creator Enhancement V2: Implement theme changer in preview tab

For detailed information see this ticket in the support center

Version: v1.9.25, released at Friday, April 15, 2022, Total Issue Count: 6

SurveyJS uses old approach for completedHtml, completedBeforeHtml and loadingHtml survey properties. As result, Creator property grid doesn't show the default value for these properties.

Creator V2 requires questionTemplate be ready right after cellType property is changed. It means we have to change questionTemplate before chaning cellType.

The bug is reproduced in Creator V2. On selecting column and setting cellType to "text", properties "min" and "max" are not become visible if inputType is "number"

Product
survey-library
Type
Bug
Description
survey.fromJSON() doesn't work correctly

The survey "activePage" is not updated after calling "fromJSON" function as well as navigation bar.

Product
survey-creator
Type
Enhancement
Description
V2: Implement theme changer in preview tab

For detailed information see this ticket in the support center

Version: v1.9.24, released at Tuesday, April 12, 2022, Total Issue Count: 11

Product Type Description
survey-library Enhancement Use action container for navigation buttons

Developers want to add buttons into our navigation bar, for example, "Save" button and the only current solution is to hide our navigation bar and let them to render their own. There should be an easy way to do it. The current solution is to use our action container. It will reduce code in platforms.

survey-library Bug onAfterRenderSurvey multiple "root" elements on knockout

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

Bug

What is the current behavior?

The onAfterRenderSurvey event should contain an options object described by this:

The event is fired right after survey is rendered in DOM. sender - the survey object that fires the event. options.htmlElement - a root HTML element bound to the survey object.

Instead I get an array of 3 elements, the root element is in the middle, surrounded by 2 text nodes.

What is the expected behavior?

This is what vue does:

https://plnkr.co/edit/0u9vnEWqshAzzcKX

This is what knockout does: https://plnkr.co/edit/x11Iojb6UqbG28lO

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

See plunkers above

Specify your

  • surveyjs platform (angular or react or jquery or knockout or vue): knockout
  • surveyjs version: v1.9.22
survey-library Bug React: chaning question comment in code doesn't update comment text area

A checkbox type question, I can't clear it's comment value by clearValue/setComment

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

question

What is the current behavior?

click clear comment button should clear its comment value, but not

What is the expected behavior?

click clear comment button can clear its comment value

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

  1. input some value in the other/comment box
  2. click clear comment
  3. the comment value should be removed

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

Tested page URL: https://codesandbox.io/s/xenodochial-chebyshev-4kbwle

Test code

            this.survey.setComment("car", null);
            this.survey.clearValue("car");

Specify your

  • browser: chrome
  • browser version: 99.0.4844.84 (Official Build) (64-bit) (cohort: Stable)
  • surveyjs platform (angular or react or jquery or knockout or vue): react
  • surveyjs version: 1.9.22
survey-library Bug We need default image (NO IMAGE) for image picker
survey-creator Enhancement V2, React: Fix header for survey in designer tab

image

survey-creator Bug Set default images after convert question to Image or Image Picker

"When you replace a question type to 'Image Picker' using the dropdown (not the toolbar on the left but the dropdown on a question), it doesn't show you the default images and just shows you an option to add a new image" https://surveyjs.answerdesk.io/internal/ticket/details/T9149

survey-creator Enhancement Rename the Test Survey Again button to Preview Survey Again

Because we renamed the Test Survey tab, users no longer test surveys - they preview them.

image

survey-creator Enhancement Preview tab: Empty survey message is not aligned

image

We need to align the message to the center. Compare it to the empty Translation tab:

image

Let's change the text too: "The survey doesn't contain visible pages or questions"

survey-creator Bug V2: Setting logic for panel dynamic cause JavaScript error

On setting expression for panel dynamic in logic tab on empty actions section, a JavaScript error is raised.

survey-creator Bug V1: Could not set bindings in modal window

Settings binding when property grid is modal raised an exception.

survey-creator Bug V1: Adorner for dropdown "None" item works incorrecly

"None" is visible/invisible based on "hasOther" property and not "hasNone"

Version: v1.9.24, released at Tuesday, April 12, 2022, Total Issue Count: 11

Product
survey-library
Type
Enhancement
Description
Use action container for navigation buttons

Developers want to add buttons into our navigation bar, for example, "Save" button and the only current solution is to hide our navigation bar and let them to render their own. There should be an easy way to do it. The current solution is to use our action container. It will reduce code in platforms.

Product
survey-library
Type
Bug
Description
onAfterRenderSurvey multiple "root" elements on knockout

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

Bug

What is the current behavior?

The onAfterRenderSurvey event should contain an options object described by this:

The event is fired right after survey is rendered in DOM. sender - the survey object that fires the event. options.htmlElement - a root HTML element bound to the survey object.

Instead I get an array of 3 elements, the root element is in the middle, surrounded by 2 text nodes.

What is the expected behavior?

This is what vue does:

https://plnkr.co/edit/0u9vnEWqshAzzcKX

This is what knockout does: https://plnkr.co/edit/x11Iojb6UqbG28lO

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

See plunkers above

Specify your

  • surveyjs platform (angular or react or jquery or knockout or vue): knockout
  • surveyjs version: v1.9.22

A checkbox type question, I can't clear it's comment value by clearValue/setComment

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

question

What is the current behavior?

click clear comment button should clear its comment value, but not

What is the expected behavior?

click clear comment button can clear its comment value

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

  1. input some value in the other/comment box
  2. click clear comment
  3. the comment value should be removed

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

Tested page URL: https://codesandbox.io/s/xenodochial-chebyshev-4kbwle

Test code

            this.survey.setComment("car", null);
            this.survey.clearValue("car");

Specify your

  • browser: chrome
  • browser version: 99.0.4844.84 (Official Build) (64-bit) (cohort: Stable)
  • surveyjs platform (angular or react or jquery or knockout or vue): react
  • surveyjs version: 1.9.22
Product
survey-library
Type
Bug
Description
We need default image (NO IMAGE) for image picker
Product
survey-creator
Type
Enhancement
Description
V2, React: Fix header for survey in designer tab

image

Product
survey-creator
Type
Bug
Description
Set default images after convert question to Image or Image Picker

"When you replace a question type to 'Image Picker' using the dropdown (not the toolbar on the left but the dropdown on a question), it doesn't show you the default images and just shows you an option to add a new image" https://surveyjs.answerdesk.io/internal/ticket/details/T9149

Product
survey-creator
Type
Enhancement
Description
Rename the Test Survey Again button to Preview Survey Again

Because we renamed the Test Survey tab, users no longer test surveys - they preview them.

image

Product
survey-creator
Type
Enhancement
Description
Preview tab: Empty survey message is not aligned

image

We need to align the message to the center. Compare it to the empty Translation tab:

image

Let's change the text too: "The survey doesn't contain visible pages or questions"

Product
survey-creator
Type
Bug
Description
V2: Setting logic for panel dynamic cause JavaScript error

On setting expression for panel dynamic in logic tab on empty actions section, a JavaScript error is raised.