Buy Licenses Contact Support Login/Register
v 1.7.10

Version: v1.7.11, estimated release date is Tuesday, June 9, 2020, Total Issue Count: 7

Product Type Description
survey-library Bug The Model is not declared in survey.react.d.ts

Model in a react app should be created as

var model = new Survey.Model(json);

But now this is impossible because of the "Model" name is not mentioned in typings.

As a workaround this can be used:

var model = new Survey["Model"](json);

See this thread for more details - https://github.com/surveyjs/surveyjs_react_quickstart/issues/19

survey-creator Enhancement Property Editors for min and max properties in question text should have different inputType

min and max properties should have a different inputType in text property editor based on question.inputType. If question.inputType is date, then it should accept date values, if it is number then it should accept number values.

survey-creator Bug New itemvalue should be numeric if default choices values are numeric

I change the default choices for itemvalues as below : var defaultChoices = [{value: 1,text: "Item 1"},{value: 2,text: "Item 2"},{value: 3,text: "Item 3"}]; creator.toolbox.getItemByName("radiogroup").json.choices = defaultChoices; creator.toolbox.getItemByName("checkbox").json.choices = defaultChoices; creator.toolbox.getItemByName("dropdown").json.choices = defaultChoices; If I create a new itemvalue it has the value 'item1'. I expect to have 4 as value.

survey-creator Bug UI bug: Do not scroll buttons "Add"/"Remove All" on adding new choices

We have scrollable area in choices property editor with buttons "Add" and "Remove All". We should scroll the table only.

survey-creator Bug The creator.logic property contains undefined after creator constructed
survey-creator Enhancement Make title/description adorners respect the readOnly metadata option

We need the common way to disable this inplace editors.

survey-creator Enhancement Introduce option to control simulator visibility on the test survey tab

The option showSimulatorInTestSurveyTab:

  var options = {
    showSimulatorInTestSurveyTab: false
  };
  var creator = new SurveyCreator.SurveyCreator("creatorElement", options);

Version: v1.7.11, estimated release date is Tuesday, June 9, 2020, Total Issue Count: 7

Product
survey-library
Type
Bug
Description
The Model is not declared in survey.react.d.ts

Model in a react app should be created as

var model = new Survey.Model(json);

But now this is impossible because of the "Model" name is not mentioned in typings.

As a workaround this can be used:

var model = new Survey["Model"](json);

See this thread for more details - https://github.com/surveyjs/surveyjs_react_quickstart/issues/19

min and max properties should have a different inputType in text property editor based on question.inputType. If question.inputType is date, then it should accept date values, if it is number then it should accept number values.

Product
survey-creator
Type
Bug
Description
New itemvalue should be numeric if default choices values are numeric

I change the default choices for itemvalues as below : var defaultChoices = [{value: 1,text: "Item 1"},{value: 2,text: "Item 2"},{value: 3,text: "Item 3"}]; creator.toolbox.getItemByName("radiogroup").json.choices = defaultChoices; creator.toolbox.getItemByName("checkbox").json.choices = defaultChoices; creator.toolbox.getItemByName("dropdown").json.choices = defaultChoices; If I create a new itemvalue it has the value 'item1'. I expect to have 4 as value.

We have scrollable area in choices property editor with buttons "Add" and "Remove All". We should scroll the table only.

Product
survey-creator
Type
Enhancement
Description
Make title/description adorners respect the readOnly metadata option

We need the common way to disable this inplace editors.

Product
survey-creator
Type
Enhancement
Description
Introduce option to control simulator visibility on the test survey tab

The option showSimulatorInTestSurveyTab:

  var options = {
    showSimulatorInTestSurveyTab: false
  };
  var creator = new SurveyCreator.SurveyCreator("creatorElement", options);

Version: v1.7.10, released at Wednesday, June 3, 2020, Total Issue Count: 15

Product Type Description
survey-library Bug Bug on visible if contains operator

Im migrating from survey version 1.0.83 to last one 1.7.7 the thing is there is something different with contains operator because on my survey { "pages": [ { "name": "page1", "elements": [ { "type": "text", "name": "qid1", "visibleIf": "[] contains 'C1'", "isRequired": true } ] } ] } This question was invisible on (1.0.83) and now on version 1.7.7, is visible when the array is empty

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

Bug

What is the current behavior?

The question is visible if the visibleif condition is false "visibleIf": "[] contains 'C1'", -> visible

What is the expected behavior?

The question is invisible if the visibleif condition is false "visibleIf": "[] contains 'C1'", -> invisible

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

https://plnkr.co/edit/bg2dUXOxPT64GBpu

Specify your

  • surveyjs version: 1.7.7
survey-library Bug Fix stackoverflow on getting matrix dynamic rowIndex in event on creating new cell

On creating new cell, when new row is not generated, requesting rowIndex from row can lead to stackoverflow.

survey-library Bug Bugs on loading choices from the web with the slow services and changing parameters

If the service for loading data into dropdown/checkbox/radiogroup choices is slow, and it depends on a parameter(s) of other questions, then on changing a parameter during requesting the data, the end-user can see the data from old parameter. For example country/state. The user can change the country value several times and state can be loaded with different and sometimes incorrect items, if a user can change a country several time during the request into a server.

survey-library Bug Custom CSS styles set in the onUpdateQuestionCssClasses event handled are not applied
survey-library Bug Can't checked again column other after enter text to the box. (matrixdropdown)

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

Bug

What is the current behavior?

I have a type matrixdropdown, when i add the column has properties hasOther = true, i check at column Other (describe) and enter value to the box then click focus out this. => Can't checked again column other after enter text to the box.

I have a example as below: https://plnkr.co/edit/BGRiyn9mn64hcziU

What is the expected behavior?

Is there the bug?

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

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

Tested page URL:

Test code

your_code_here

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue):
  • surveyjs version:
survey-library Bug PanelDynamic: Do not use panelsState if templateTitle is empty.

If the panelsState is "collapsed" or "firstExpanded" and templateTitle is empty, then we do not render any panel at all or render only one panel. We should not take this property into account if templateTitle is empty.

survey-library Bug Avoid stackoverflow for triggers

The following JSON cause the stackoverflow on setting value to q1 and q2.

{
    elements: [
      { type: "text", name: "q1" },
      { type: "text", name: "q2" },
      { type: "text", name: "q3" },
    ],
    triggers: [
      {
        type: "setvalue",
        expression: "{q1} > 0 or {q3} > 1",
        setToName: "q3",
        setValue: 5,
      },
      {
        type: "setvalue",
        expression: "{q2} > 0 or {q3} > 1",
        setToName: "q3",
        setValue: 6,
      },
    ],
  }

We have to block for running the triggers recursive.

survey-library Bug Do not show an error in several rows for matrixdropdown (showInMultipleColumns + columnLayout: 'vertical')

i add properties columnLayout: 'vertical', check at column Other (describe), not enter value to the box then click button complete. => Error message as shown below:

image

You can view ex: https://plnkr.co/edit/BGRiyn9mn64hcziU I think the error message only show up in in the last radio?

At the input with type radio duplicate id.

image

image

Is this the cause of the error?

Originally posted by @Huuvinh94 in https://github.com/surveyjs/survey-library/issues/2200#issuecomment-637932012

survey-creator Bug Add new page button overlaps properties grid
  1. Run SurveyCreator locally
  2. Open a browser window to full width
  3. Expand properties grid width from right to the left a lot
  4. Decrease window size by half
  5. ???
  6. Add new page button overlaps properties grid

image

survey-creator Bug Missing items editor in dropdown when disable readonly
  1. Go to https://surveyjs.io/create-survey
  2. Add dropdown question
  3. Enable readonly property
  4. Disable readonly property
  5. ???
  6. Items editor is missing

image

survey-creator Bug Expression with question type "file" doesn't work correctly in Condition Property Editor

The operator "equal" is disabled for question "file", but set as default. We have to hide the value for this question type. The original issue came from SurveyJS Support Desk.

survey-creator Enhancement Page Editor in the toolbar

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

  var creator = new SurveyCreator.SurveyCreator("editorElement", {
    showPageSelectorInToolbar: true,
  });
survey-creator Bug "Error:" string in property Editors is not localized

The original issue came from SurveyJS Support Desk.

survey-creator Bug Confusingly similar names of two File field options

There are two options present on each file field, which have very similar names, and unclear semantic difference: "Allow Images Preview" and "Is image preview shown?".

See the https://surveyjs.answerdesk.io/ticket/details/t4247/confusingly-similar-names-of-two-file-field-options thread for more details.

We need to fix it.

survey-creator Bug VisibleIf expression doesn't appear
  1. Go to https://surveyjs.io/create-survey
  2. Add two questions
  3. Select second question
  4. Go to Logic section in property grid
  5. Expand VisibleIf tab
  6. Choose first question in dropdown
  7. Choose is not empty in second dropdown
  8. Click on Edit button
  9. Click back on Build button
  10. Choose is empty in second dropdown
  11. Wait a two seconds (important!)
  12. Click on Edit button
  13. ???
  14. Expression displays old value until click a textarea

image

Version: v1.7.10, released at Wednesday, June 3, 2020, Total Issue Count: 15

Product
survey-library
Type
Bug
Description
Bug on visible if contains operator

Im migrating from survey version 1.0.83 to last one 1.7.7 the thing is there is something different with contains operator because on my survey { "pages": [ { "name": "page1", "elements": [ { "type": "text", "name": "qid1", "visibleIf": "[] contains 'C1'", "isRequired": true } ] } ] } This question was invisible on (1.0.83) and now on version 1.7.7, is visible when the array is empty

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

Bug

What is the current behavior?

The question is visible if the visibleif condition is false "visibleIf": "[] contains 'C1'", -> visible

What is the expected behavior?

The question is invisible if the visibleif condition is false "visibleIf": "[] contains 'C1'", -> invisible

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

https://plnkr.co/edit/bg2dUXOxPT64GBpu

Specify your

  • surveyjs version: 1.7.7

On creating new cell, when new row is not generated, requesting rowIndex from row can lead to stackoverflow.

If the service for loading data into dropdown/checkbox/radiogroup choices is slow, and it depends on a parameter(s) of other questions, then on changing a parameter during requesting the data, the end-user can see the data from old parameter. For example country/state. The user can change the country value several times and state can be loaded with different and sometimes incorrect items, if a user can change a country several time during the request into a server.

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

Bug

What is the current behavior?

I have a type matrixdropdown, when i add the column has properties hasOther = true, i check at column Other (describe) and enter value to the box then click focus out this. => Can't checked again column other after enter text to the box.

I have a example as below: https://plnkr.co/edit/BGRiyn9mn64hcziU

What is the expected behavior?

Is there the bug?

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

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

Tested page URL:

Test code

your_code_here

Specify your

  • browser:
  • browser version:
  • surveyjs platform (angular or react or jquery or knockout or vue):
  • surveyjs version:
Product
survey-library
Type
Bug
Description
PanelDynamic: Do not use panelsState if templateTitle is empty.

If the panelsState is "collapsed" or "firstExpanded" and templateTitle is empty, then we do not render any panel at all or render only one panel. We should not take this property into account if templateTitle is empty.

Product
survey-library
Type
Bug
Description
Avoid stackoverflow for triggers

The following JSON cause the stackoverflow on setting value to q1 and q2.

{
    elements: [
      { type: "text", name: "q1" },
      { type: "text", name: "q2" },
      { type: "text", name: "q3" },
    ],
    triggers: [
      {
        type: "setvalue",
        expression: "{q1} > 0 or {q3} > 1",
        setToName: "q3",
        setValue: 5,
      },
      {
        type: "setvalue",
        expression: "{q2} > 0 or {q3} > 1",
        setToName: "q3",
        setValue: 6,
      },
    ],
  }

We have to block for running the triggers recursive.

i add properties columnLayout: 'vertical', check at column Other (describe), not enter value to the box then click button complete. => Error message as shown below:

image

You can view ex: https://plnkr.co/edit/BGRiyn9mn64hcziU I think the error message only show up in in the last radio?

At the input with type radio duplicate id.

image

image

Is this the cause of the error?

Originally posted by @Huuvinh94 in https://github.com/surveyjs/survey-library/issues/2200#issuecomment-637932012

Product
survey-creator
Type
Bug
Description
Add new page button overlaps properties grid
  1. Run SurveyCreator locally
  2. Open a browser window to full width
  3. Expand properties grid width from right to the left a lot
  4. Decrease window size by half
  5. ???
  6. Add new page button overlaps properties grid

image

Product
survey-creator
Type
Bug
Description
Missing items editor in dropdown when disable readonly
  1. Go to https://surveyjs.io/create-survey
  2. Add dropdown question
  3. Enable readonly property
  4. Disable readonly property
  5. ???
  6. Items editor is missing

image

The operator "equal" is disabled for question "file", but set as default. We have to hide the value for this question type. The original issue came from SurveyJS Support Desk.

Product
survey-creator
Type
Enhancement
Description
Page Editor in the toolbar

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

  var creator = new SurveyCreator.SurveyCreator("editorElement", {
    showPageSelectorInToolbar: true,
  });
Product
survey-creator
Type
Bug
Description
"Error:" string in property Editors is not localized

The original issue came from SurveyJS Support Desk.

Product
survey-creator
Type
Bug
Description
Confusingly similar names of two File field options

There are two options present on each file field, which have very similar names, and unclear semantic difference: "Allow Images Preview" and "Is image preview shown?".

See the https://surveyjs.answerdesk.io/ticket/details/t4247/confusingly-similar-names-of-two-file-field-options thread for more details.

We need to fix it.

Product
survey-creator
Type
Bug
Description
VisibleIf expression doesn't appear
  1. Go to https://surveyjs.io/create-survey
  2. Add two questions
  3. Select second question
  4. Go to Logic section in property grid
  5. Expand VisibleIf tab
  6. Choose first question in dropdown
  7. Choose is not empty in second dropdown
  8. Click on Edit button
  9. Click back on Build button
  10. Choose is empty in second dropdown
  11. Wait a two seconds (important!)
  12. Click on Edit button
  13. ???
  14. Expression displays old value until click a textarea

image

Version: v1.7.9, released at Thursday, May 28, 2020, Total Issue Count: 3

Product Type Description
survey-library Enhancement Render TextArea in display as div

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

Enhancement

What is the current behavior?

in the display version of the survey a textarea is just set to readonly. This keeps the scrollbar on the side if there is lots of text.

What is the expected behavior?

in display version change it to a div and have all the text inside the div

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

Not a bug, but enhancement ! Easier for "printing" a survey

Specify your

  • browser: Chrome
  • surveyjs platform: jquery:
  • surveyjs version: 1.7.6
survey-creator Bug Import button doesn't work in Translation tab

There is an error in console on clicking the "Import" button in Translation tab.

survey-creator Bug Examples not working on Firefox

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

Reporting a bug

What is the current behavior?

Empty page

What is the expected behavior?

loading designer with all controls

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

go to the examples page https://surveyjs.io/create-survey with firefox browser

Specify your

  • browser: firefox 76.0.1 (64bit)
  • editor version: 1.7.8

Version: v1.7.9, released at Thursday, May 28, 2020, Total Issue Count: 3

Product
survey-library
Type
Enhancement
Description
Render TextArea in display as div

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

Enhancement

What is the current behavior?

in the display version of the survey a textarea is just set to readonly. This keeps the scrollbar on the side if there is lots of text.

What is the expected behavior?

in display version change it to a div and have all the text inside the div

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

Not a bug, but enhancement ! Easier for "printing" a survey

Specify your

  • browser: Chrome
  • surveyjs platform: jquery:
  • surveyjs version: 1.7.6
Product
survey-creator
Type
Bug
Description
Import button doesn't work in Translation tab

There is an error in console on clicking the "Import" button in Translation tab.

Product
survey-creator
Type
Bug
Description
Examples not working on Firefox

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

Reporting a bug

What is the current behavior?

Empty page

What is the expected behavior?

loading designer with all controls

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

go to the examples page https://surveyjs.io/create-survey with firefox browser

Specify your

  • browser: firefox 76.0.1 (64bit)
  • editor version: 1.7.8

Version: v1.7.8, released at Tuesday, May 26, 2020, Total Issue Count: 13

Product Type Description
survey-library Bug goNextPageAutomatic not triggering validation errors

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

Its a bug :beetle: :mosquito: :bug:

What is the current behavior?

a survey with goNextPageAutomatic =true will not show validation errors on value change/enter. The progress, bar updates, next page is not displayed, also no error displayed although validation fails.

Using enter here: notice question going green on enter

"validators":[{"type":"numeric","minValue":1905,"maxValue":2005}]}]}

bad

What is the expected behavior?

Validation error should be displayed. Progress not updated.

survey-library Bug Filter choices doesn't work for a question inside a matrix cell and the value in another column is changed

The following JSON doesn't work correctly:

{
      elements: [
        {
          type: "matrixdynamic",
          name: "matrix",
          columns: [
            {
              name: "column1",
              cellType: "text",
            },
            {
              name: "column2",
              choices: [
                { value: "A", visibleIf: "{row.column1} = 1" },
                { value: "B", visibleIf: "{row.column2} = 2" },
                { value: "C", visibleIf: "{row.column2} = 2" },
              ],
            },
          ],
          rowCount: 1,
        },
      ],
    }

column2 choices are all invisible, even if column1 equals 1 or 2.

survey-library Enhancement Add survey.mergeData() function

There are scenarios, when there is a need to merge/overrides the data and do not replace it completely. If the question value exists in the current survey, but doesn't exists in the new comming data object, then keep it.

  /**
   * Merge the values into survey.data. It works as survey.data, except it doesn't clean the existing data, but overrides them.
   * @param data data to merge. It should be an object {keyValue: Value, ...}
   * @see data
   * @see setValue
   */
  public mergeData(data: any);
survey-library Bug showPreviewBeforeComplete, could not go to edit mode to the first page

The original issue was reported on SurveyJS support desk.

survey-creator Enhancement Turn on the "json" mode for Ace Editor

Ace Editor needs to have set the basePath:

ace["config"].set('basePath', SurveyJSONEditor.aceBasePath);

You can set the base path via the follwoing code:

SurveyCreator.SurveyJSONEditor.aceBasePath = "https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.10/";
survey-creator Enhancement Hide title logo adorner if "logo" property is not visible
survey-creator BreakingChange Fit SurveyJS Creator into given area (div or another container element)

Right now SurveyJS Creator tabs can overflow given container. We need to fix it. Bacause of the fix complexity it is planned as an enhancement.

survey-creator Bug Export button doesn't work in Translation tab

Export button just doesn't work in Translation tab.

survey-creator Bug Doesn't correctly disable operators on editing expressions

The original bug came from SurveyJS Support Center

survey-creator Bug Properties tab width not decrease when comment data editor width decreasing
  1. Run SurveyCreator locally
  2. Add comment question
  3. Go to properties tab, data section
  4. Decrease textarea width
  5. ???
  6. Properties width didn't decreased (horisontal scrollbar stays)

image

survey-creator Enhancement Add tooltips/hints for survey logic save/close buttons
survey-pdf Enhancement Implement custom and composite question types
survey-analytics Enhancement Implement getElements method for VisualizationPanel

It should return an array of

export interface IVisualizerPanelElement {
  name: string;
  displayName: string;
  visibility: ElementVisibility;
  type?: string;
}

where visibility is

export enum ElementVisibility {
  Visible,
  Invisible,
  PublicInvisible,
}

An array of the IVisualizerPanelElement items can be passed to VisualizationPanel constructor as 5th parameter. It represents the state of a panel (a set of elements, titles. visibility). The getElements method will allow to get the surrvey state of VisualizationPanel.

See the https://surveyjs.answerdesk.io/ticket/details/t3856/onvisibleelementschanged-event thread for more details

Version: v1.7.8, released at Tuesday, May 26, 2020, Total Issue Count: 13

Product
survey-library
Type
Bug
Description
goNextPageAutomatic not triggering validation errors

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

Its a bug :beetle: :mosquito: :bug:

What is the current behavior?

a survey with goNextPageAutomatic =true will not show validation errors on value change/enter. The progress, bar updates, next page is not displayed, also no error displayed although validation fails.

Using enter here: notice question going green on enter

"validators":[{"type":"numeric","minValue":1905,"maxValue":2005}]}]}

bad

What is the expected behavior?

Validation error should be displayed. Progress not updated.

The following JSON doesn't work correctly:

{
      elements: [
        {
          type: "matrixdynamic",
          name: "matrix",
          columns: [
            {
              name: "column1",
              cellType: "text",
            },
            {
              name: "column2",
              choices: [
                { value: "A", visibleIf: "{row.column1} = 1" },
                { value: "B", visibleIf: "{row.column2} = 2" },
                { value: "C", visibleIf: "{row.column2} = 2" },
              ],
            },
          ],
          rowCount: 1,
        },
      ],
    }

column2 choices are all invisible, even if column1 equals 1 or 2.

Product
survey-library
Type
Enhancement
Description
Add survey.mergeData() function

There are scenarios, when there is a need to merge/overrides the data and do not replace it completely. If the question value exists in the current survey, but doesn't exists in the new comming data object, then keep it.

  /**
   * Merge the values into survey.data. It works as survey.data, except it doesn't clean the existing data, but overrides them.
   * @param data data to merge. It should be an object {keyValue: Value, ...}
   * @see data
   * @see setValue
   */
  public mergeData(data: any);

The original issue was reported on SurveyJS support desk.

Product
survey-creator
Type
Enhancement
Description
Turn on the "json" mode for Ace Editor

Ace Editor needs to have set the basePath:

ace["config"].set('basePath', SurveyJSONEditor.aceBasePath);

You can set the base path via the follwoing code:

SurveyCreator.SurveyJSONEditor.aceBasePath = "https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.10/";
Product
survey-creator
Type
Enhancement
Description
Hide title logo adorner if "logo" property is not visible
Product
survey-creator
Type
BreakingChange
Description
Fit SurveyJS Creator into given area (div or another container element)

Right now SurveyJS Creator tabs can overflow given container. We need to fix it. Bacause of the fix complexity it is planned as an enhancement.

Product
survey-creator
Type
Bug
Description
Export button doesn't work in Translation tab

Export button just doesn't work in Translation tab.

Product
survey-creator
Type
Bug
Description
Doesn't correctly disable operators on editing expressions

The original bug came from SurveyJS Support Center

  1. Run SurveyCreator locally
  2. Add comment question
  3. Go to properties tab, data section
  4. Decrease textarea width
  5. ???
  6. Properties width didn't decreased (horisontal scrollbar stays)

image

Product
survey-creator
Type
Enhancement
Description
Add tooltips/hints for survey logic save/close buttons
Product
survey-pdf
Type
Enhancement
Description
Implement custom and composite question types
Product
survey-analytics
Type
Enhancement
Description
Implement getElements method for VisualizationPanel

It should return an array of

export interface IVisualizerPanelElement {
  name: string;
  displayName: string;
  visibility: ElementVisibility;
  type?: string;
}

where visibility is

export enum ElementVisibility {
  Visible,
  Invisible,
  PublicInvisible,
}

An array of the IVisualizerPanelElement items can be passed to VisualizationPanel constructor as 5th parameter. It represents the state of a panel (a set of elements, titles. visibility). The getElements method will allow to get the surrvey state of VisualizationPanel.

See the https://surveyjs.answerdesk.io/ticket/details/t3856/onvisibleelementschanged-event thread for more details

Version: v1.7.7, released at Wednesday, May 20, 2020, Total Issue Count: 12

Product Type Description
survey-library Enhancement Allow to preview answers before posting the results

Many surveys/forms allow end-users to preview their answers before completing the survey/form. Right now, some of developers use display mode and second survey to create this functionality. We should have it out of the box: Instead of "Complete" button we show "Preview" button. When end-user press "Preview button", we will show all questions, or optionally only answered, in read-only mode on one page (every page converts into a panel with an "Edit" button"). End-user can go to edit mode again, by pressing "Edit" button on a panel to start editing survey again with a particular page or press "Edit" button on Navigation tab to start from the beginning. If an end-user satisfies with results, he/she will press "Complete" button.

New property: survey.showPreviewBeforeComplete: string, ["noPreview", "showAllQuestions", "showAnsweredQuestions"], "noPreview" is the default value. New methods: survey.showPreview(): boolean - go to preview mode, returns false if there is an error on the page. survey.cancelPreview() - go back to edit mode.

The example is here.

survey-library Bug Unable to colorize horizontal scrollbar
  1. Go to https://surveyjs.io/Examples/Pdf-Export?id=survey-pdf-customstylization
  2. Set narrow enough browser window size
  3. ???
  4. Horizontal scrollbar is green (not blue)
survey-library Enhancement Pass question object in options for onUploadFiles event
survey-creator Bug Choice items adorners - addNew/hasOther/hasAll/hasNone controls are not accessible via keyboard
survey-creator Bug Nested item property editor - delete button is not accessible via keyboard
survey-creator Enhancement Add swedish translation

Add localized strings. Translation was done by Thomas Borgström.

survey-creator Bug Updating Navigation button text will not call `onModified` and `saveSurveyFunc`

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

Bug.

What is the current behavior?

Updating survey Navigation properties ("Page previous button text", "Page next button text"...) not firing onModified and/or saveSurveyFunc.

What is the expected behavior?

onModified and/or saveSurveyFunc called on updating Navigation properties.

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

  • Set Navigation button text properties ("Page previous button text", etc.).
  • onModified and saveSurveyFunc will not be called.

Specify your

  • browser: Google Chrome 81.0.4044.138
  • editor version: 1.7.6
survey-creator Enhancement Add tooltip for condition and action in logic tab
survey-creator Enhancement Implement toolbar for JSON editor

If AceEditor is available, the toolbar will contain undo/redo/copy/cut/paste commands

See the https://surveyjs.answerdesk.io/ticket/details/t4035/add-buttons-to-json-editor thread for more details

survey-creator Bug Display question title/name for question.valueName in expression

We do not display question title/name if we are using question.valueName in expression (valueName is not empty). We should fix it. If there is several questions with the same valueName, then use the title/name from the first question in the list.

survey-pdf Enhancement Support signaturepad question type out-of-the-box

Since we included the signaturepad question into the core library we need to support it in PDF.

survey-analytics Enhancement How to stop dragging and hide chart selector UI
menu

Thanks

Version: v1.7.7, released at Wednesday, May 20, 2020, Total Issue Count: 12

Product
survey-library
Type
Enhancement
Description
Allow to preview answers before posting the results

Many surveys/forms allow end-users to preview their answers before completing the survey/form. Right now, some of developers use display mode and second survey to create this functionality. We should have it out of the box: Instead of "Complete" button we show "Preview" button. When end-user press "Preview button", we will show all questions, or optionally only answered, in read-only mode on one page (every page converts into a panel with an "Edit" button"). End-user can go to edit mode again, by pressing "Edit" button on a panel to start editing survey again with a particular page or press "Edit" button on Navigation tab to start from the beginning. If an end-user satisfies with results, he/she will press "Complete" button.

New property: survey.showPreviewBeforeComplete: string, ["noPreview", "showAllQuestions", "showAnsweredQuestions"], "noPreview" is the default value. New methods: survey.showPreview(): boolean - go to preview mode, returns false if there is an error on the page. survey.cancelPreview() - go back to edit mode.

The example is here.

Product
survey-library
Type
Bug
Description
Unable to colorize horizontal scrollbar
  1. Go to https://surveyjs.io/Examples/Pdf-Export?id=survey-pdf-customstylization
  2. Set narrow enough browser window size
  3. ???
  4. Horizontal scrollbar is green (not blue)
Product
survey-library
Type
Enhancement
Description
Pass question object in options for onUploadFiles event
Product
survey-creator
Type
Enhancement
Description
Add swedish translation

Add localized strings. Translation was done by Thomas Borgström.

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

Bug.

What is the current behavior?

Updating survey Navigation properties ("Page previous button text", "Page next button text"...) not firing onModified and/or saveSurveyFunc.

What is the expected behavior?

onModified and/or saveSurveyFunc called on updating Navigation properties.

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

  • Set Navigation button text properties ("Page previous button text", etc.).
  • onModified and saveSurveyFunc will not be called.

Specify your

  • browser: Google Chrome 81.0.4044.138
  • editor version: 1.7.6
Product
survey-creator
Type
Enhancement
Description
Add tooltip for condition and action in logic tab
Product
survey-creator
Type
Enhancement
Description
Implement toolbar for JSON editor

If AceEditor is available, the toolbar will contain undo/redo/copy/cut/paste commands

See the https://surveyjs.answerdesk.io/ticket/details/t4035/add-buttons-to-json-editor thread for more details

Product
survey-creator
Type
Bug
Description
Display question title/name for question.valueName in expression

We do not display question title/name if we are using question.valueName in expression (valueName is not empty). We should fix it. If there is several questions with the same valueName, then use the title/name from the first question in the list.

Product
survey-pdf
Type
Enhancement
Description
Support signaturepad question type out-of-the-box

Since we included the signaturepad question into the core library we need to support it in PDF.

Product
survey-analytics
Type
Enhancement
Description
How to stop dragging and hide chart selector UI
menu

Thanks

Version: v1.7.6, released at Wednesday, May 13, 2020, Total Issue Count: 8

Product Type Description
survey-library Bug Get rid of KnockoutJS references in jquery and angular survey .d.ts files
survey-library Bug Boolean is editable in display mode

Reporting a bug

Boolean is editable in display mode

What is the current behavior?

The value of the boolean slider is editable in display mode.

What is the expected behavior?

The value of the boolean slider should not be editable in display mode.

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

https://plnkr.co/edit/gJOlIpaIcNYwkFlz Click on the slider and see it move in display mode.

Specify your

  • browser: Firefox
  • browser version: latest
  • surveyjs platform (angular or react or jquery or knockout or vue): jQuery
  • surveyjs version: 1.7.5
survey-library Enhancement Add rowTitleWidth property for Matrix Dropdown

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

Im not 100% its a feature request or a question. Did not find this option in the docs, anyway.

What is the current behavior?

Currently one can set the widths for defined columns in the matrix. But does not seem to be possible to set the desired width for the first column containing the sub-question text. I understand it can be done via css, but it should be able to define this per question. Some matrixes have longer texts in rows, and some free space can be allocated there from columns.

so as an example. Lets say I have this: Screenshot from 2020-05-07 18-49-39

What is the expected behavior?

But I want is to look like this: Screenshot from 2020-05-07 18-50-52

survey-library Bug Checkbox question doesn't keep it's comment value on changing survey.isSinglePage

The following code doesn't work.

  var survey = new SurveyModel({
    storeOthersAsComment: false,
    elements: [
      {
        type: "checkbox",
        name: "q1",
        hasOther: true,
        choices: [1, 2],
      },
    ],
  });
  var question = <QuestionCheckboxModel>survey.getQuestionByName("q1");
  question.value = "other";
  question.comment = "other2";
  survey.isSinglePage = true;
//question.comment  becomes empty
survey-library Enhancement Add onAfterRender and onAfterRenderContentElement into component JSON

We can handle survey.onAfterRenderQuestion event to change the rendering of Component Quesiton. However, it is not a component approach. This code should be in the component definition.

survey-creator Bug [Logic Tab] Skip option got removed if select from action dropdown

The origional issue came from SurveyJS support desk

survey-creator Bug Expression (logic) editor has wrong layout

Editors are splitted in several lines even on wide screen.

See the screenshot below

image

survey-creator Enhancement Add min, max, step properties into property grid for matrix text column

When a SurveyJS Creator user set matrix dropdown/dynamic column to text and then set inputType property to "number", then min, max and step properties should be shown.

Version: v1.7.6, released at Wednesday, May 13, 2020, Total Issue Count: 8

Product
survey-library
Type
Bug
Description
Boolean is editable in display mode

Reporting a bug

Boolean is editable in display mode

What is the current behavior?

The value of the boolean slider is editable in display mode.

What is the expected behavior?

The value of the boolean slider should not be editable in display mode.

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

https://plnkr.co/edit/gJOlIpaIcNYwkFlz Click on the slider and see it move in display mode.

Specify your

  • browser: Firefox
  • browser version: latest
  • surveyjs platform (angular or react or jquery or knockout or vue): jQuery
  • surveyjs version: 1.7.5
Product
survey-library
Type
Enhancement
Description
Add rowTitleWidth property for Matrix Dropdown

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

Im not 100% its a feature request or a question. Did not find this option in the docs, anyway.

What is the current behavior?

Currently one can set the widths for defined columns in the matrix. But does not seem to be possible to set the desired width for the first column containing the sub-question text. I understand it can be done via css, but it should be able to define this per question. Some matrixes have longer texts in rows, and some free space can be allocated there from columns.

so as an example. Lets say I have this: Screenshot from 2020-05-07 18-49-39

What is the expected behavior?

But I want is to look like this: Screenshot from 2020-05-07 18-50-52

The following code doesn't work.

  var survey = new SurveyModel({
    storeOthersAsComment: false,
    elements: [
      {
        type: "checkbox",
        name: "q1",
        hasOther: true,
        choices: [1, 2],
      },
    ],
  });
  var question = <QuestionCheckboxModel>survey.getQuestionByName("q1");
  question.value = "other";
  question.comment = "other2";
  survey.isSinglePage = true;
//question.comment  becomes empty
Product
survey-library
Type
Enhancement
Description
Add onAfterRender and onAfterRenderContentElement into component JSON

We can handle survey.onAfterRenderQuestion event to change the rendering of Component Quesiton. However, it is not a component approach. This code should be in the component definition.

Product
survey-creator
Type
Bug
Description
[Logic Tab] Skip option got removed if select from action dropdown

The origional issue came from SurveyJS support desk

Product
survey-creator
Type
Bug
Description
Expression (logic) editor has wrong layout

Editors are splitted in several lines even on wide screen.

See the screenshot below

image

Product
survey-creator
Type
Enhancement
Description
Add min, max, step properties into property grid for matrix text column

When a SurveyJS Creator user set matrix dropdown/dynamic column to text and then set inputType property to "number", then min, max and step properties should be shown.

Version: v1.7.5, released at Thursday, May 7, 2020, Total Issue Count: 13

Product Type Description
survey-library Bug Some custom CSS not working since v1.7.1

Reporting a bug?

Some custom CSS is not working since v1.7.1.

What is the current behavior?

Some custom CSS does not get applied.

What is the expected behavior?

All custom CSS should be applied.

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

Set the version to 1.7.1 or higher and see the custom css for the question titles disappear. I'm not sure if this happens for more css classes, I have noticed it for my question classes.

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

Tested page URL: https://plnkr.co/edit/2RN0QXZ5sIJGkSQt

Specify your

  • browser: Chrome and Firefox
  • browser version: latest
  • surveyjs platform (angular or react or jquery or knockout or vue): jquery
  • surveyjs version: 1.7.1 onwards
survey-library Bug Question title custom css class is applied only after question value is set

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

bug

What is the current behavior?

question title custom css class is applied only after question value is set

What is the expected behavior?

question title custom css class should by applied after survey rendering

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

https://plnkr.co/edit/4kZLfX1A9Zw4ZZyO

survey-library Bug Do not run validators onValueChanged for date/datetime inputType in Question Text

For inputType "date", "datetime" inputType in Text Question the valueChanged fires several times during entering the date value. It confuses end-user to show errors while he is not finish to enter the data.

survey-library Bug visibleIf property in ItemValue class is not observable/reactive

We should make property visibleIf in ItemValue class observable/reactive. Otherwise, the changes in this property will not go into UndoRedo manager. The original issue came from SurveyJS support desk.

survey-library Enhancement Introduce an option to return questionType from the getPlainData function

Add a question type to the plain data optionally. See the https://surveyjs.answerdesk.io/ticket/details/t3887/radiogroup-questions-incorrectly-flagged-isnode-on-getplaindata-response thread for more details.

    var plainData = question.getPlainData({ includeQuestionTypes: true });
    assert.deepEqual(plainData.questionType, "radiogroup");
survey-library Enhancement style for disabled elements (modern theme)

need to add root css class "sv-question--disabled" and the appropriate styles

survey-library Enhancement Add matrix.hideIfRowsEmpty property

Add a hideIfRowsEmpty boolean property (false by default) into single matrix. If it is true, and there is no visible rows in the matrix, then hide it.

survey-library Bug Maximum call stack size exceeded - matrix dropdown with totals and boolean column

The following JSON produce stack overflow (came from SurveyJS Support Desk):

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdropdown",
     "name": "question2",
     "columns": [
      {
       "name": "Column 1"
      },
      {
       "name": "Column 2"
      },
      {
       "name": "Column 3",
       "totalType": "sum"
      },
      {
       "name": "Column 4",
       "cellType": "boolean"
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ],
     "cellType": "text",
     "rows": [
      "Row 1",
      "Row 2"
     ]
    }
   ]
  }
 ]
}
survey-creator Bug Logic items are not updated on changing creator.JSON if logic tab is active

The origional bug was reported into SurveyJS support desk.

survey-creator Bug Save state toolbar item is missing
survey-creator Enhancement Introduce questionvalue property editor

We have question property editor that set question name into property value. For some triggers properties, like setToName, we need to set the question.valueName if it is not empty and then question.name.

survey-creator Bug Use question.valueName, if not empty, for auto complete in expression property editor

If question.valueName is not empty, then this value should be used in auto complete in the expression property editor.

survey-analytics Enhancement How to hide the unwanted tool icons on charts

Hi, Could you please help me to remove certain icons or whole set of icons when question is displayed in chart. Also, i noticed in pie chart and doughnut chart, on mouse hover the answers are displaying twice. barchart pieChart

Version: v1.7.5, released at Thursday, May 7, 2020, Total Issue Count: 13

Product
survey-library
Type
Bug
Description
Some custom CSS not working since v1.7.1

Reporting a bug?

Some custom CSS is not working since v1.7.1.

What is the current behavior?

Some custom CSS does not get applied.

What is the expected behavior?

All custom CSS should be applied.

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

Set the version to 1.7.1 or higher and see the custom css for the question titles disappear. I'm not sure if this happens for more css classes, I have noticed it for my question classes.

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

Tested page URL: https://plnkr.co/edit/2RN0QXZ5sIJGkSQt

Specify your

  • browser: Chrome and Firefox
  • browser version: latest
  • surveyjs platform (angular or react or jquery or knockout or vue): jquery
  • surveyjs version: 1.7.1 onwards

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

bug

What is the current behavior?

question title custom css class is applied only after question value is set

What is the expected behavior?

question title custom css class should by applied after survey rendering

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

https://plnkr.co/edit/4kZLfX1A9Zw4ZZyO

For inputType "date", "datetime" inputType in Text Question the valueChanged fires several times during entering the date value. It confuses end-user to show errors while he is not finish to enter the data.

Product
survey-library
Type
Bug
Description
visibleIf property in ItemValue class is not observable/reactive

We should make property visibleIf in ItemValue class observable/reactive. Otherwise, the changes in this property will not go into UndoRedo manager. The original issue came from SurveyJS support desk.

Product
survey-library
Type
Enhancement
Description
Introduce an option to return questionType from the getPlainData function

Add a question type to the plain data optionally. See the https://surveyjs.answerdesk.io/ticket/details/t3887/radiogroup-questions-incorrectly-flagged-isnode-on-getplaindata-response thread for more details.

    var plainData = question.getPlainData({ includeQuestionTypes: true });
    assert.deepEqual(plainData.questionType, "radiogroup");
Product
survey-library
Type
Enhancement
Description
style for disabled elements (modern theme)

need to add root css class "sv-question--disabled" and the appropriate styles

Product
survey-library
Type
Enhancement
Description
Add matrix.hideIfRowsEmpty property

Add a hideIfRowsEmpty boolean property (false by default) into single matrix. If it is true, and there is no visible rows in the matrix, then hide it.

The following JSON produce stack overflow (came from SurveyJS Support Desk):

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdropdown",
     "name": "question2",
     "columns": [
      {
       "name": "Column 1"
      },
      {
       "name": "Column 2"
      },
      {
       "name": "Column 3",
       "totalType": "sum"
      },
      {
       "name": "Column 4",
       "cellType": "boolean"
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ],
     "cellType": "text",
     "rows": [
      "Row 1",
      "Row 2"
     ]
    }
   ]
  }
 ]
}

The origional bug was reported into SurveyJS support desk.

Product
survey-creator
Type
Bug
Description
Save state toolbar item is missing
Product
survey-creator
Type
Enhancement
Description
Introduce questionvalue property editor

We have question property editor that set question name into property value. For some triggers properties, like setToName, we need to set the question.valueName if it is not empty and then question.name.

If question.valueName is not empty, then this value should be used in auto complete in the expression property editor.

Product
survey-analytics
Type
Enhancement
Description
How to hide the unwanted tool icons on charts

Hi, Could you please help me to remove certain icons or whole set of icons when question is displayed in chart. Also, i noticed in pie chart and doughnut chart, on mouse hover the answers are displaying twice. barchart pieChart

Version: v1.7.4, released at Wednesday, April 29, 2020, Total Issue Count: 26

Product Type Description
survey-library Bug Space between survey title and first question title is not wide enough in modern theme

image

survey-library Bug Boolean and Signature Pad questions have wrong title width
  1. Go to https://surveyjs.io/Examples/Library?id=questiontype-boolean
  2. ???
  3. Boolean question's title has full width

image

But other questions's titles have half width

survey-library Enhancement Use calc function for element.renderedWidth if there is pre-setup width on the same line

In the current JSON we do not have the correct way to set the correct width:

{
  elements: [
    {
       type: "text",
       name: "q1",
       width: "120px",
    },
    {
       type: "text",
       name: "q2",
       startWithNewLine: false,
       visibleIf: "{q1} notempty"
    },
    {
       type: "text",
       name: "q3",
       startWithNewLine: false
    }
  ]
}

Till v1.7.4, the width for DOM element corresponded to question "q2" and "q3" will be "33.333333%". It is not quite correct, because 120px is not another "33.333333%". The correct value is "calc((100% - 120px)/2)" when the q2 is visible and "calc(100% - 120px)". function "calc" supports for IE9+ and all modern browsers. We should use it to create a correct adaptive rendering.

survey-library Bug panel.width property is not serializable.

We have to add this property into serialization and allow end-user to modify it from the property grid.

survey-library Bug Survey title and description should be responsive

Survey title and description are cut on small screens:

image

survey-library Bug setValueRow function does nothing in matrix dynamic question

The following code, to copy the value from the last row into a new one:

matrix.addRow();
if (matrix.rowCount < 2) return;
var value = matrix.getRowValue(matrix.rowCount - 2);
//copy value from the last row
matrix.setRowValue(matrix.rowCount - 1, value);

survey-library Enhancement Add settings.executeCompleteTriggerOnValueChanged option

Complete trigger, by default, works when a user goes to the next page. In some scenarios, for example single page survey, it requries to run this trigger on value changed: Survey.settings.executeCompleteTriggerOnValueChanged = true;

To solve this issue we have added a new property into Survey.settings variable:

  /**
   * Set this property to true to execute the complete trigger on value change instead of on next page.
   */
  executeCompleteTriggerOnValueChanged: false
survey-library Enhancement Add hasSelectAll and hasNone properties into checkbox matrix column

Users miss these two properties in checkbox column.

survey-library Bug Support letters and numbers in questionStartIndex property

The following code doesn't work: survey.questionStartIndex = "Q1."; The expected value for the third question is: "Q3.", in the current version "3.".

survey-library Enhancement Flexbox for better layout

Using css flexbox with layout degradation for old browsers.

survey-library Bug Memory leaks is SurveyJS Library

If you render Survey multiple times without refresh the page, the memory consumption keep increasing when Survey is re-created.

See this thread for more details: https://surveyjs.answerdesk.io/ticket/details/t3896/memory-issue-on-ie11

I've reproduced the issue in Chrome also.

We'll introduce the dispose method for survey model. It should dispose all inner elements and subscriptions.

survey-library Enhancement Add init function into custom widget.

Currently the job of init() function does activatedByChanged() function. It is not obvious. There is a need with init() that comes without parameters, where developer can add new class, properties and so on.

survey-library Bug Calculated values not updated in survey.data

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

Bug

What is the current behavior?

If a survey is loaded with data which contains a value with the same name as a calculated value with includeIntoResult = true, that value will be returned by all future gets of survey.data, even if the calculated value changes.

What is the expected behavior?

survey.data should return the current value of the calculated value.

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

Survey JSON:

{
  "pages": [
    {
      "name": "page1",
      "elements": [
        {
          "type": "text",
          "name": "fruit",
          "title": "Enter a fruit"
        }
      ]
    }
  ],
  "calculatedValues": [
    {
      "name": "finalAnswer",
      "expression": "{fruit}",
      "includeIntoResult": true
    }
  ]
}

Set data to:

{"fruit": "apple", "finalAnswer": "apple"}

Change "apple" to "orange" in the first question. survey.data returns:

{"fruit": "orange", "finalAnswer": "apple"}

Specify your

  • browser: Edge
  • browser version: 81.0.416.64
  • surveyjs platform: react
  • surveyjs version: 1.7.3
survey-library Bug The getPlainData method should return processed markup in the title field

We need both title and displayValue to show HTML, not raw markdown. Currently, displayValue shows HTML, and title shows raw markdown.

survey-creator Enhancement Tooltip/Description missing for toolbar buttons
survey-creator Enhancement Introduce the onLogicItemSaved event
  /**
   * The event is called when logic item is saved.
   * <br/> options.item is the saved logic item.
   */
  public onLogicItemSaved: Survey.Event<
    (sender: SurveyLogic, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyLogic, options: any) => any, any>();
survey-creator Enhancement Introduce the onLogicItemRemoving/onLogicItemRemoved events
  /**
   * The event is called before logic item is being removed.
   * <br/> options.allowRemove is the option you can set to false and prevent removing.
   * <br/> options.item is the logic item to remove.
   */
  public onLogicItemRemoving: Survey.Event<
    (sender: SurveyLogic, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyLogic, options: any) => any, any>();
  /**
   * The event is called when logic item is removed.
   * <br/> options.item is the removed logic item.
   */
  public onLogicItemRemoved: Survey.Event<
    (sender: SurveyLogic, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyLogic, options: any) => any, any>();

survey-creator Bug Uncaught TypeError: Cannot read property 'renderedElement' of undefined if options { howDesignerTab: false }

editor.ts:2118 Uncaught TypeError: Cannot read property 'renderedElement' of undefined at SurveyCreator.applyBinding (editor.ts:2118) at SurveyCreator.render (editor.ts:1303) at new SurveyCreator (editor.ts:1091) at index.js:83

survey-creator Bug There is no optionsCaption in dropdown for some trigger properties

The origional issue came from SurveyJS support center

survey-creator Enhancement Add displayName attribute into JSON property and use it in the Property Grid

It should be easy to set the displayName attribute for custom property, for example:

Survey.Serializer.addProperty("question", {name: "tag", displayName: "Custom Data", category: "general"});

Right now, it creates to add additional two lines of code to add a new key for tag with value "Custom Data" to the Survey Creator localization strings. The current API is not obvious and overcomplicated if there is a need to support just one locale/language in the Survey Creator.

survey-creator Enhancement Update expressions on deleting question from the survey

When SuveyJS Creator user deletes the question, all expressions where this question is used should be updated. For example, on deleting "question1", visibleIf expression " < 10" should become empty and expression " < 10 and > 5" should become " > 5".

survey-creator Bug Do not show question description on setting question value in Condition Property Editor

If the question that used in condition editor has a large description, then we show this description under "Please enter/select the value" title and it doesn't look good. There is no reason to show the question description here.

survey-creator Bug Show question.name instead of question.valueName in Condition Property Editor

The origional issue came from SurveyJS Support desk

survey-creator Bug Page title adorner is renderd incorrectly after a first question title

See T3910 - Issue- Question title editor is not working with default json. thread for more details - https://surveyjs.answerdesk.io/ticket/details/t3910/issue-question-title-editor-is-not-working-with-default-json

image

survey-creator Bug You can edit/delete existing rules in Logic tab for read only creator

We have to hide edit/delete rules buttons in logic tab when creator is read only: creator.readOnly = true;

survey-pdf Enhancement Support image question type out-of-the-box

Since we included the image question into the core library we need to support it in PDF.

Version: v1.7.4, released at Wednesday, April 29, 2020, Total Issue Count: 26

image

Product
survey-library
Type
Bug
Description
Boolean and Signature Pad questions have wrong title width
  1. Go to https://surveyjs.io/Examples/Library?id=questiontype-boolean
  2. ???
  3. Boolean question's title has full width

image

But other questions's titles have half width

In the current JSON we do not have the correct way to set the correct width:

{
  elements: [
    {
       type: "text",
       name: "q1",
       width: "120px",
    },
    {
       type: "text",
       name: "q2",
       startWithNewLine: false,
       visibleIf: "{q1} notempty"
    },
    {
       type: "text",
       name: "q3",
       startWithNewLine: false
    }
  ]
}

Till v1.7.4, the width for DOM element corresponded to question "q2" and "q3" will be "33.333333%". It is not quite correct, because 120px is not another "33.333333%". The correct value is "calc((100% - 120px)/2)" when the q2 is visible and "calc(100% - 120px)". function "calc" supports for IE9+ and all modern browsers. We should use it to create a correct adaptive rendering.

Product
survey-library
Type
Bug
Description
panel.width property is not serializable.

We have to add this property into serialization and allow end-user to modify it from the property grid.

Product
survey-library
Type
Bug
Description
Survey title and description should be responsive

Survey title and description are cut on small screens:

image

Product
survey-library
Type
Bug
Description
setValueRow function does nothing in matrix dynamic question

The following code, to copy the value from the last row into a new one:

matrix.addRow();
if (matrix.rowCount < 2) return;
var value = matrix.getRowValue(matrix.rowCount - 2);
//copy value from the last row
matrix.setRowValue(matrix.rowCount - 1, value);

Product
survey-library
Type
Enhancement
Description
Add settings.executeCompleteTriggerOnValueChanged option

Complete trigger, by default, works when a user goes to the next page. In some scenarios, for example single page survey, it requries to run this trigger on value changed: Survey.settings.executeCompleteTriggerOnValueChanged = true;

To solve this issue we have added a new property into Survey.settings variable:

  /**
   * Set this property to true to execute the complete trigger on value change instead of on next page.
   */
  executeCompleteTriggerOnValueChanged: false
Product
survey-library
Type
Enhancement
Description
Add hasSelectAll and hasNone properties into checkbox matrix column

Users miss these two properties in checkbox column.

Product
survey-library
Type
Bug
Description
Support letters and numbers in questionStartIndex property

The following code doesn't work: survey.questionStartIndex = "Q1."; The expected value for the third question is: "Q3.", in the current version "3.".

Product
survey-library
Type
Enhancement
Description
Flexbox for better layout

Using css flexbox with layout degradation for old browsers.

Product
survey-library
Type
Bug
Description
Memory leaks is SurveyJS Library

If you render Survey multiple times without refresh the page, the memory consumption keep increasing when Survey is re-created.

See this thread for more details: https://surveyjs.answerdesk.io/ticket/details/t3896/memory-issue-on-ie11

I've reproduced the issue in Chrome also.

We'll introduce the dispose method for survey model. It should dispose all inner elements and subscriptions.

Product
survey-library
Type
Enhancement
Description
Add init function into custom widget.

Currently the job of init() function does activatedByChanged() function. It is not obvious. There is a need with init() that comes without parameters, where developer can add new class, properties and so on.

Product
survey-library
Type
Bug
Description
Calculated values not updated in survey.data

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

Bug

What is the current behavior?

If a survey is loaded with data which contains a value with the same name as a calculated value with includeIntoResult = true, that value will be returned by all future gets of survey.data, even if the calculated value changes.

What is the expected behavior?

survey.data should return the current value of the calculated value.

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

Survey JSON:

{
  "pages": [
    {
      "name": "page1",
      "elements": [
        {
          "type": "text",
          "name": "fruit",
          "title": "Enter a fruit"
        }
      ]
    }
  ],
  "calculatedValues": [
    {
      "name": "finalAnswer",
      "expression": "{fruit}",
      "includeIntoResult": true
    }
  ]
}

Set data to:

{"fruit": "apple", "finalAnswer": "apple"}

Change "apple" to "orange" in the first question. survey.data returns:

{"fruit": "orange", "finalAnswer": "apple"}

Specify your

  • browser: Edge
  • browser version: 81.0.416.64
  • surveyjs platform: react
  • surveyjs version: 1.7.3

We need both title and displayValue to show HTML, not raw markdown. Currently, displayValue shows HTML, and title shows raw markdown.

Product
survey-creator
Type
Enhancement
Description
Tooltip/Description missing for toolbar buttons
Product
survey-creator
Type
Enhancement
Description
Introduce the onLogicItemSaved event
  /**
   * The event is called when logic item is saved.
   * <br/> options.item is the saved logic item.
   */
  public onLogicItemSaved: Survey.Event<
    (sender: SurveyLogic, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyLogic, options: any) => any, any>();
Product
survey-creator
Type
Enhancement
Description
Introduce the onLogicItemRemoving/onLogicItemRemoved events
  /**
   * The event is called before logic item is being removed.
   * <br/> options.allowRemove is the option you can set to false and prevent removing.
   * <br/> options.item is the logic item to remove.
   */
  public onLogicItemRemoving: Survey.Event<
    (sender: SurveyLogic, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyLogic, options: any) => any, any>();
  /**
   * The event is called when logic item is removed.
   * <br/> options.item is the removed logic item.
   */
  public onLogicItemRemoved: Survey.Event<
    (sender: SurveyLogic, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyLogic, options: any) => any, any>();

editor.ts:2118 Uncaught TypeError: Cannot read property 'renderedElement' of undefined at SurveyCreator.applyBinding (editor.ts:2118) at SurveyCreator.render (editor.ts:1303) at new SurveyCreator (editor.ts:1091) at index.js:83

Product
survey-creator
Type
Bug
Description
There is no optionsCaption in dropdown for some trigger properties

The origional issue came from SurveyJS support center

Product
survey-creator
Type
Enhancement
Description
Add displayName attribute into JSON property and use it in the Property Grid

It should be easy to set the displayName attribute for custom property, for example:

Survey.Serializer.addProperty("question", {name: "tag", displayName: "Custom Data", category: "general"});

Right now, it creates to add additional two lines of code to add a new key for tag with value "Custom Data" to the Survey Creator localization strings. The current API is not obvious and overcomplicated if there is a need to support just one locale/language in the Survey Creator.

Product
survey-creator
Type
Enhancement
Description
Update expressions on deleting question from the survey

When SuveyJS Creator user deletes the question, all expressions where this question is used should be updated. For example, on deleting "question1", visibleIf expression " < 10" should become empty and expression " < 10 and > 5" should become " > 5".

If the question that used in condition editor has a large description, then we show this description under "Please enter/select the value" title and it doesn't look good. There is no reason to show the question description here.

The origional issue came from SurveyJS Support desk

See T3910 - Issue- Question title editor is not working with default json. thread for more details - https://surveyjs.answerdesk.io/ticket/details/t3910/issue-question-title-editor-is-not-working-with-default-json

image

Product
survey-creator
Type
Bug
Description
You can edit/delete existing rules in Logic tab for read only creator

We have to hide edit/delete rules buttons in logic tab when creator is read only: creator.readOnly = true;

Product
survey-pdf
Type
Enhancement
Description
Support image question type out-of-the-box

Since we included the image question into the core library we need to support it in PDF.

Version: v1.7.3, released at Wednesday, April 22, 2020, Total Issue Count: 13

Product Type Description
survey-library Bug Helpers.isTwoValueEquals should return true on comparing undefined/null with empty string

Helpers.isTwoValueEquals(undefined, "") returns false, where it has to return true. Returing true leads to this error, the input value assigned undefined from the model and in case of incorrected entered date, it clears the value, date in the linked bug, completely.

survey-library Enhancement Allow to disable adding/removing rows in matrix dynamic question

There is no easy way to disable adding/removing rows in matrix dynamic questions. It needs in scenarios when end-user can modify value cells only. Use these two properties. They are true by default.

/**
 * Set this property to false to disable ability to add new rows. "Add new Row" button becomes invsible in UI
 * @see canAddRow
 * @see allowRemoveRows
 */
public allowAddRows: boolean;
/**
 * Set this property to false to disable ability to remove rows. "Remove" row buttons become invsible in UI
 * @see canRemoveRows
 * @see allowAddRows
 */
public allowRemoveRows: boolean;
survey-library Enhancement New survey.onQuestionCreated event
  /**
   * The event is fired on creating a new question.
   * Unlike the onQuestionAdded event, this event calls for all question created in survey including inside: a page, panel, matrix cell, dynamic panel and multiple text.
   * or inside a matrix cell or it can be a text question in multiple text items or inside a panel of a panel dynamic.
   * You can use this event to set up properties to a question based on it's type for all questions, regardless where they are located, on the page or inside a matrix cell.
   * Please note: If you want to use this event for questions loaded from JSON then you have to create survey with empty/null JSON parameter, assign the event and call survey.fromJSON(yourJSON) function.
   * <br/> `sender` - the survey object that fires the event.
   * <br/> `options.question` - a newly created question object.
   * @see Question
   * @see onQuestionAdded
   */
  public onQuestionCreated: Event<
    (sender: SurveyModel, options: any) => any;

The following code set the min date to all "date" inputs to tomorrow:

//Create empty survey
var survey = new Survey.Model();
//add a handler to the event
survey.onQuestionCreated.add(function(sender, options) {
  if(options.question.inputType === "date") {
    options.question.min = getTomorrowDateInHtmlFormat();
  }
});
//Load survey with JSON. All questions will be pass through the event.
survey.fromJSON(YourSurveyJSON);

function getTomorrowDateInHtmlFormat() {
    var d = new Date();
    d.setDate(d.getDate() + 1);
    var    month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();
    if (month.length < 2) 
        month = '0' + month;
    if (day.length < 2) 
        day = '0' + day;
    return [year, month, day].join('-');
}
survey-library Bug survey.progressBarType is "questions" calculates incorrectly if there are non input questions in survey

survey.getProgress() for survey.progressBarType equals to "questions" includes "expression" and "html" questions, also they do not have an input area. The correct behavior is to exclude them from calculation. Here is the link on origional issue.

survey-library Bug "textUpdateMode": "onTyping" prevents most placeHolders from showing

Reporting a bug?

"textUpdateMode": "onTyping" prevents most placeHolders from showing

What is the current behavior?

With "textUpdateMode": "onTyping" specified almost all placeholders do not show. Some placeholders do still show, weirdly enough, for example the first placeholder in a dynamic matrix does show and the second and third placeholders show in a panel with 3 textfields, but most placeholders don't show at all.

What is the expected behavior?

With "textUpdateMode": "onTyping" the placeholders still need to show, just like with the default setting of textUpdateMode.

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

Create some fields with placeholders and add "textUpdateMode": "onTyping" to see the placeholders disappear.

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

https://plnkr.co/edit/pdSfMAuswxPw7Rei

Specify your

  • browser: Chrome & Firefox
  • browser version: latest
  • surveyjs platform (angular or react or jquery or knockout or vue): JQuery
  • surveyjs version: 1.5.18 through 1.7.2 for sure
survey-creator Enhancement Add creator.validateSelectedElement() function

This function will allow showing errors in adorners and property grid for selected element. It can be used with creator.onSelectedElementChanged event.

/**
 * Check for errors in property grid and adorners of the selected elements.
 * Returns true if selected element is null or there is no errors.
 */
public validateSelectedElement(): boolean {
  if (!this.selectedElement) return true;
  if (!!this.elementPropertyGridValue) {
    return !this.elementPropertyGridValue.hasErrors();
  }
  return true;
}
survey-creator Enhancement Add ability to show the limited number of action types in logic type

The origional question came to SurveyJS support desk. The customer wants to limit the number of logic types showing on adding a new action or changing the existing one. Adding static SurveyCreator.SurveyLogic.visibleActions array should solve the issue. When this array not empty, then use actions that are in this array. For example:

  SurveyLogic.visibleActions = [
    "question_visibility",
    "question_require",
    "trigger_skip",
    "trigger_complete"
  ];

The following code makes available only four actions.

survey-creator Enhancement Refactoring: Replace properties/functions/classes operation vs actions in SurveyLogic tab

We are using "Action/Actions" in Logic tab UI, but in code we are using "Operation/Operations". It includes class names, functions, properties and localized strings. It confused other developers since we are not consistent here. Solution: change all "Operation" words in our API, including the private into "Action".

survey-creator Bug ItemValues property editor doesn't take into account creator.readOnly property

The origional issue came from SurveyJS help desk

survey-creator Bug Survey logo doesn't render correctly for read-only creator

The following code break the logo adorner rendering.

      var creatorOptions = {
        showLogicTab: true,
        readOnly: true
      };
      var creator = new SurveyCreator.SurveyCreator("editor", creatorOptions);

survey-creator Enhancement Optionally hide expression header in the condition property editor in logic tab

The origional suggestion came from SurveyJS support desk. A new option has been added, hideExpressionHeaderInLogicTab:

      var editorOptions = {
        hideExpressionHeaderInLogicTab: true, //hide the expression header
      };
      var creator = new SurveyCreator.SurveyCreator("editor", editorOptions);
survey-creator Enhancement Render text about set-up logic expression and first action

The origional feature request came from SurveyJS support desk. To show these text, two localizable strings should be define:

SurveyCreator.defaultStrings.ed.lg.expressionSetup =
  "Logic Expression set-up";
SurveyCreator.defaultStrings.ed.lg.actionsSetup = "Action(s) set-up";

Two new CSS classes to control their styles: "svd-expression-setup" and "svd-logic-tab__actions-setup".

survey-analytics Enhancement Pass elements and changed element in the onVisibleElementsChanged event handler

Now an object with the

      {
        elements: this._elements,
        changed: element,
      }

is passed in the event options:

  visibleElementsChanged(element: IVisualizerPanelElement) {
    if (!this.onVisibleElementsChanged.isEmpty) {
      this.onVisibleElementsChanged.fire(this, {
        elements: this._elements,
        changed: element,
      });
    }
    this.layout();
  }

Version: v1.7.3, released at Wednesday, April 22, 2020, Total Issue Count: 13

Helpers.isTwoValueEquals(undefined, "") returns false, where it has to return true. Returing true leads to this error, the input value assigned undefined from the model and in case of incorrected entered date, it clears the value, date in the linked bug, completely.

Product
survey-library
Type
Enhancement
Description
Allow to disable adding/removing rows in matrix dynamic question

There is no easy way to disable adding/removing rows in matrix dynamic questions. It needs in scenarios when end-user can modify value cells only. Use these two properties. They are true by default.

/**
 * Set this property to false to disable ability to add new rows. "Add new Row" button becomes invsible in UI
 * @see canAddRow
 * @see allowRemoveRows
 */
public allowAddRows: boolean;
/**
 * Set this property to false to disable ability to remove rows. "Remove" row buttons become invsible in UI
 * @see canRemoveRows
 * @see allowAddRows
 */
public allowRemoveRows: boolean;
Product
survey-library
Type
Enhancement
Description
New survey.onQuestionCreated event
  /**
   * The event is fired on creating a new question.
   * Unlike the onQuestionAdded event, this event calls for all question created in survey including inside: a page, panel, matrix cell, dynamic panel and multiple text.
   * or inside a matrix cell or it can be a text question in multiple text items or inside a panel of a panel dynamic.
   * You can use this event to set up properties to a question based on it's type for all questions, regardless where they are located, on the page or inside a matrix cell.
   * Please note: If you want to use this event for questions loaded from JSON then you have to create survey with empty/null JSON parameter, assign the event and call survey.fromJSON(yourJSON) function.
   * <br/> `sender` - the survey object that fires the event.
   * <br/> `options.question` - a newly created question object.
   * @see Question
   * @see onQuestionAdded
   */
  public onQuestionCreated: Event<
    (sender: SurveyModel, options: any) => any;

The following code set the min date to all "date" inputs to tomorrow:

//Create empty survey
var survey = new Survey.Model();
//add a handler to the event
survey.onQuestionCreated.add(function(sender, options) {
  if(options.question.inputType === "date") {
    options.question.min = getTomorrowDateInHtmlFormat();
  }
});
//Load survey with JSON. All questions will be pass through the event.
survey.fromJSON(YourSurveyJSON);

function getTomorrowDateInHtmlFormat() {
    var d = new Date();
    d.setDate(d.getDate() + 1);
    var    month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();
    if (month.length < 2) 
        month = '0' + month;
    if (day.length < 2) 
        day = '0' + day;
    return [year, month, day].join('-');
}

survey.getProgress() for survey.progressBarType equals to "questions" includes "expression" and "html" questions, also they do not have an input area. The correct behavior is to exclude them from calculation. Here is the link on origional issue.

Product
survey-library
Type
Bug
Description
"textUpdateMode": "onTyping" prevents most placeHolders from showing

Reporting a bug?

"textUpdateMode": "onTyping" prevents most placeHolders from showing

What is the current behavior?

With "textUpdateMode": "onTyping" specified almost all placeholders do not show. Some placeholders do still show, weirdly enough, for example the first placeholder in a dynamic matrix does show and the second and third placeholders show in a panel with 3 textfields, but most placeholders don't show at all.

What is the expected behavior?

With "textUpdateMode": "onTyping" the placeholders still need to show, just like with the default setting of textUpdateMode.

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

Create some fields with placeholders and add "textUpdateMode": "onTyping" to see the placeholders disappear.

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

https://plnkr.co/edit/pdSfMAuswxPw7Rei

Specify your

  • browser: Chrome & Firefox
  • browser version: latest
  • surveyjs platform (angular or react or jquery or knockout or vue): JQuery
  • surveyjs version: 1.5.18 through 1.7.2 for sure
Product
survey-creator
Type
Enhancement
Description
Add creator.validateSelectedElement() function

This function will allow showing errors in adorners and property grid for selected element. It can be used with creator.onSelectedElementChanged event.

/**
 * Check for errors in property grid and adorners of the selected elements.
 * Returns true if selected element is null or there is no errors.
 */
public validateSelectedElement(): boolean {
  if (!this.selectedElement) return true;
  if (!!this.elementPropertyGridValue) {
    return !this.elementPropertyGridValue.hasErrors();
  }
  return true;
}
Product
survey-creator
Type
Enhancement
Description
Add ability to show the limited number of action types in logic type

The origional question came to SurveyJS support desk. The customer wants to limit the number of logic types showing on adding a new action or changing the existing one. Adding static SurveyCreator.SurveyLogic.visibleActions array should solve the issue. When this array not empty, then use actions that are in this array. For example:

  SurveyLogic.visibleActions = [
    "question_visibility",
    "question_require",
    "trigger_skip",
    "trigger_complete"
  ];

The following code makes available only four actions.

We are using "Action/Actions" in Logic tab UI, but in code we are using "Operation/Operations". It includes class names, functions, properties and localized strings. It confused other developers since we are not consistent here. Solution: change all "Operation" words in our API, including the private into "Action".

The origional issue came from SurveyJS help desk

Product
survey-creator
Type
Bug
Description
Survey logo doesn't render correctly for read-only creator

The following code break the logo adorner rendering.

      var creatorOptions = {
        showLogicTab: true,
        readOnly: true
      };
      var creator = new SurveyCreator.SurveyCreator("editor", creatorOptions);

Product
survey-creator
Type
Enhancement
Description
Optionally hide expression header in the condition property editor in logic tab

The origional suggestion came from SurveyJS support desk. A new option has been added, hideExpressionHeaderInLogicTab:

      var editorOptions = {
        hideExpressionHeaderInLogicTab: true, //hide the expression header
      };
      var creator = new SurveyCreator.SurveyCreator("editor", editorOptions);
Product
survey-creator
Type
Enhancement
Description
Render text about set-up logic expression and first action

The origional feature request came from SurveyJS support desk. To show these text, two localizable strings should be define:

SurveyCreator.defaultStrings.ed.lg.expressionSetup =
  "Logic Expression set-up";
SurveyCreator.defaultStrings.ed.lg.actionsSetup = "Action(s) set-up";

Two new CSS classes to control their styles: "svd-expression-setup" and "svd-logic-tab__actions-setup".

Product
survey-analytics
Type
Enhancement
Description
Pass elements and changed element in the onVisibleElementsChanged event handler

Now an object with the

      {
        elements: this._elements,
        changed: element,
      }

is passed in the event options:

  visibleElementsChanged(element: IVisualizerPanelElement) {
    if (!this.onVisibleElementsChanged.isEmpty) {
      this.onVisibleElementsChanged.fire(this, {
        elements: this._elements,
        changed: element,
      });
    }
    this.layout();
  }

Version: v1.7.2, released at Friday, April 17, 2020, Total Issue Count: 6

Product Type Description
survey-library Bug Triggers properties are not observable/react and trigger doesn't call survey.onPropertyValueChangedCallback

Because triggers properties are not observable/react and trigger doesn't go to the root/survey to call survey.onPropertyValueChangedCallback callback, undo/redo mechanizm doesn't work for trigger content and auto saving doesn't work as well. On changing a trigger property survey will not change the state from "saved" to "unsaved"

survey-library Enhancement Set minValue attribute to 0.1 for rateStep property in rating question

Let our survey cloud set the rateStep value less than 1 for rating question.

survey-library Bug Complete trigger doesn't work when invisible questions are in expression
survey-library Enhancement Add getLocaleStrings() and getCurrentStrings() functions into surveyLocalization object

To get French localization strings you can use the following code:

var frenchStrings = Survey.surveyLocalization.getLocaleStrings("fr");

To get the localization strings for the current selected locale:

var currentStrings = Survey.surveyLocalization.getCurrentStrings();
survey-creator Enhancement Clear, but not remove the only action in logic edit tab

New logic item could not exists without at least one action. To be consistent with condition expression editor, do not remove the last item, but clear its properties.

survey-creator Enhancement Css update for buttons in Logic Tab

Version: v1.7.2, released at Friday, April 17, 2020, Total Issue Count: 6

Because triggers properties are not observable/react and trigger doesn't go to the root/survey to call survey.onPropertyValueChangedCallback callback, undo/redo mechanizm doesn't work for trigger content and auto saving doesn't work as well. On changing a trigger property survey will not change the state from "saved" to "unsaved"

Product
survey-library
Type
Enhancement
Description
Set minValue attribute to 0.1 for rateStep property in rating question

Let our survey cloud set the rateStep value less than 1 for rating question.

To get French localization strings you can use the following code:

var frenchStrings = Survey.surveyLocalization.getLocaleStrings("fr");

To get the localization strings for the current selected locale:

var currentStrings = Survey.surveyLocalization.getCurrentStrings();
Product
survey-creator
Type
Enhancement
Description
Clear, but not remove the only action in logic edit tab

New logic item could not exists without at least one action. To be consistent with condition expression editor, do not remove the last item, but clear its properties.

Product
survey-creator
Type
Enhancement
Description
Css update for buttons in Logic Tab

Version: v1.7.1, released at Thursday, April 16, 2020, Total Issue Count: 22

Product Type Description
survey-library Enhancement Implement an ability to show logo image in the survey header

We need to be able to show company logo at the top of the survey

Introduce:

  • logo property
  • width/height property
  • position property: left/right/top/bottom from the survey title and description
survey-library Enhancement Hide numbering for individual questions

We need an ability to show question title, but hide the question numbering.

  /**
   * Set hideNumber to true to stop showing the number for this question. The question will not be counter
   * @see visibleIndex
   * @see titleLocation
   */
  public get hideNumber(): boolean;
  public set hideNumber(val: boolean);
question.hideNumber = true;
survey-library Bug Failing Typescript build on survey-vue since 1.5.19

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

Reporting a bug

What is the current behavior?

Build fails

Error message:

 error  in .../node_modules/survey-vue/survey.vue.d.ts

ERROR in .../node_modules/survey-vue/survey.vue.d.ts(1348,38):
1348:38 Cannot find module '../question'.
    1346 | 
    1347 | export declare class Custom extends QuestionVue<QuestionCustomModel> {
  > 1348 |     readonly contentQuestion: import("../question").Question;
         |                                      ^
    1349 | }
    1350 | 
    1351 | 

 error  in .../node_modules/survey-vue/survey.vue.d.ts

ERROR in .../node_modules/survey-vue/survey.vue.d.ts(1353,35):
1353:35 Cannot find module '../panel'.
    1351 | 
    1352 | export declare class Composite extends QuestionVue<QuestionCompositeModel> {
  > 1353 |     readonly contentPanel: import("../panel").PanelModel;
         |                                   ^
    1354 | }
    1355 | 
    1356 | 

What is the expected behavior?

Build works

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

Install survey-vue@1.5.19, try and build with Typescript.

  • surveyjs platform (angular or react or jquery or knockout or vue): vue
survey-library Enhancement Add settings.serializeLocalizableStringAsObject property
/**
   * Set to true to always serialize the localization string as object even if there is only one value for default locale. Instead of string "MyStr" serialize as {default: "MyStr"}
   */
serializeLocalizableStringAsObject: false

Example of using: Survey.settings.serializeLocalizableStringAsObject = true;

survey-library Enhancement Improve numbering in panels

The following properties are added into panel: showNumber, showQuestionNumbers and questionStartIndex.

  /**
   * Set showNumber to true to start showing the number for this panel.
   * @see visibleIndex
   */
  public get showNumber(): boolean;
  public set showNumber(val): boolean;
  /**
   * Gets or sets a value that specifies how the elements numbers inside panel are displayed.
   *
   * The following options are available:
   *
   * - `default` - display questions numbers as defined in parent panel or survey
   * - `onpanel` - display questions numbers, start numbering from beginning of this page
   * - `off` - turn off the numbering for questions titles
   * @see showNumber
   */
  public get showQuestionNumbers(): string;
  public set showQuestionNumbers(value: string);

  /**
   * Gets or sets the first question index for elements inside the panel. The first question index is '1.' by default and it is taken from survey.questionStartIndex property.
   * You may start it from '100' or from 'A', by setting '100' or 'A' to this property.
   * You can set the start index to "(1)" or "# A)" or "a)" to render question number as (1), # A) and a) accordingly.
   * @see survey.questionStartIndex
   */
  public get questionStartIndex(): string;
  public set questionStartIndex(val: string);

For example, the numbering below will be possible by setting the following properties into panel1:

panel1.showNumer = true;
panel1.showQuestionNumbers = "onpanel";
panel1.questionStartIndex = "a)"
  1. Question 1
  2. Panel 1
  1. Question 1 Inside Panel 1
  2. Question 2 Inside Panel 1
  1. Question 2
survey-library Enhancement Add event on changing properties in ItemValue object

The following event has been added:

  /**
   * Event that raised on changing property of the ItemValue object.
   * sender - the object that owns the property
   * options.propertyName - the property name to which ItemValue array is belong. It can be "choices" for dropdown question
   * options.obj - the instance of ItemValue object which property has been changed
   * options.name - the property of ItemObject that has been changed
   * options.oldValue - old value
   * options.newValue - new value
   */
  public onItemValuePropertyChanged: Event<(sender: Base, options: any) => any,  any>;

Here is the example of using:

matrixQuestion.onItemValuePropertyChanged.add(function(sender, options) {
  //If ItemValue in the "rows" array of the matrix, do something on changing "text" property
  if(options.propertyName == "rows" && options.name == "text") {
    //do something
  }
});
survey-library Bug Round correctly rateValues for step less than 1 for rating question

In case rateStep is 0.1 in the rating question and rateMin/rateMax is 0/1 than we are getting values as: 0, 0.1, 0.2, 0.30000000000000004, ... The issue related to this issue: Why don’t my numbers, like 0.1 + 0.2 add up to a nice round 0.3, and instead I get a weird result like 0.30000000000000004?. Anyway, the behavior is not expected and expected behavior is to have values as: 0, 0.1, 0.2, 0.3, ...

survey-library Enhancement Add Thai localization

Add Thai localization, created by our customer.

survey-library Bug An exception raised in matrix with now standard rows and total row

matrix dropdown/dynamic raised exception in the following function: public get totalValue(): any if there is no standard rows and total row is shown

survey-library Enhancement SurveyTriggerSetValue should clear the value if setValue is empty

To clear the question value, we can use SurveyTriggerSetValue with setValue is empty. For example:

  {
   "type": "setvalue",
   "expression": "{shippingSameAsBusiness} = false",
   "setToName": "shippingAddress"
  }

Question shippingAddress becomes empty on setting shippingSameAsBusiness question to false.

survey-library Bug Could not override invisible property, by making it visible

The following code should make price property visible for class "itemorder" and invsible for base class "itemvalue"

  Serializer.addProperty("itemvalue", { name: "price:number", visible: false });
  Serializer.addClass(
    "itemorder",
    [
      {
        name: "price:number",
        visible: true,
      },
    ],
    function () {
      return new ItemValue(null, null, "itemorder");
    },
    "itemvalue"
  );

It doesn't work in v1.5.19

survey-library Bug On property changed function is not called for "value" property in the ItemValue object

This test is not passed

QUnit.test("ItemValue value changed notifications", function (assert) {
  var itemValue = new ItemValue("item");
  var valueChangedCount = 0;
  itemValue.registerFunctionOnPropertyValueChanged(
    "value",
    () => {
      valueChangedCount++;
    },
    "val_changed"
  );
  itemValue.value = "Test";
  assert.equal(valueChangedCount, 1, "changed notification has been fired");
  itemValue.unRegisterFunctionOnPropertyValueChanged("value", "val_changed");
});

Related issue - https://surveyjs.answerdesk.io/ticket/details/t3783/dropdown-radiobutton-and-checkbox-item-value-dont-reflect

survey-creator Enhancement Custom question: Setup question and hide complexity from your end-users

Let's say you want to allow your end-users to select a country. The current solution is to modify a "dropdown" question with some preset and put it into toolbox. The current code is the following:

creator
    .toolbox
    .addItem({
        name: "countries",
        isCopied: true,
        iconName: "icon-default",
        title: "All countries",
        json: {
            "type": "dropdown",
            optionsCaption: "Select a country...",
            choicesByUrl: {
                url: "https://restcountries.eu/rest/v2/all"
            }
        }
    })

The code is taken from toolbox customization example. What if you need more and what to add some code behind this definition. And how to hide all unneeded properties, like choices, choicesByUrl and many others, from this question, that is actually still a dropdown question.

We want you to inroduce a way, where you can easily create a new question type: "country" and end-user will operate with this question even in JSON as: { type: "country", name: "myCountry"}. It should be in Toolbox, end-user can't modify or access properties that he doesn't need for a country question. You do not need to write a specific code for a survey to handle it's events when needed. It becomes a component model.

Please read more in this document.

See also composite custom question (where you can setup several questions at once) functionality.

survey-creator Enhancement Composite question: Create a block of questions to simplify survey creation for end-users

Let's say your users often create a survey that contains information about their/your clients. It may include first/last names, address, phones, birthdate and so on. Commonly, end-user have to drop several questions, setup them and layout them on the page or panel. End-user can copy these questions from one survey to another. However, as soon as he copies these questions into another survey, he would have to support several versions of client information. If he decides to add/remove/change a question (for example phone), then it would require to change it in several surveys. Additionally, it is not an easy task for a non-technical person.

Composite question will solve this problem. It will allow to create, for our example, question type: "customerinformation" with all setup questions located in one panel. The value in the survey will be stored as: questionName: {firstName: ClientFirstName, lastName: CliertLastName, ...}. End-user could not access to internal questions. He could not customize them. You will be able to write the code and add properties to customize the question on high level: hide/show different questions, for example show/hide birthdate or address question(s).

Please read more in this document.

See also custom question (where only one question is available) functionality.

survey-creator Enhancement Introduce survey logo/title/description in-place editors

We need an ability to edit logo/title/description of a survey in SurveyJS Creator design surface.

survey-creator Enhancement Select/delete text in the TitleInplaceEditor after focus
survey-creator Enhancement Translation tab: Hide the header for the only page in the survey and show questions at once

If a group has only one item and it is another group then expand it's by default. For example if shows only localizable strings with text and there is only one page in the survey, then expand it, or there is only one question in the page, then expand the question group.

Additionally hide the page header, if this page header becomes the root of the translation.

Here is the picture on showing "Translation" tab with the only one page and the only one question. image

survey-creator Enhancement Support the maxLength limit for the title adorner

We need to implement an ability to limit text input in the inplace editors (title adorner and it descendants)

image

survey-creator Bug Condition Editor could not parse expression with calculated values and unary operator

The following expression could not be parsed correctly:

survey-creator Enhancement shortcut for undo and redo (keyboard shortcuts)
survey-creator Bug Designer scrolls up when select a question by clicking on it

In some big surveys (like COVID-19 example) if click to questions on the bottom of the designer area then designer scrolls up. Also when click on question focus carries to the property grid and necessary one more click to question to focus it

survey-analytics Bug `Node.prototype.append` doesn't work in IE11

Version: v1.7.1, released at Thursday, April 16, 2020, Total Issue Count: 22

Product
survey-library
Type
Enhancement
Description
Implement an ability to show logo image in the survey header

We need to be able to show company logo at the top of the survey

Introduce:

  • logo property
  • width/height property
  • position property: left/right/top/bottom from the survey title and description
Product
survey-library
Type
Enhancement
Description
Hide numbering for individual questions

We need an ability to show question title, but hide the question numbering.

  /**
   * Set hideNumber to true to stop showing the number for this question. The question will not be counter
   * @see visibleIndex
   * @see titleLocation
   */
  public get hideNumber(): boolean;
  public set hideNumber(val: boolean);
question.hideNumber = true;
Product
survey-library
Type
Bug
Description
Failing Typescript build on survey-vue since 1.5.19

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

Reporting a bug

What is the current behavior?

Build fails

Error message:

 error  in .../node_modules/survey-vue/survey.vue.d.ts

ERROR in .../node_modules/survey-vue/survey.vue.d.ts(1348,38):
1348:38 Cannot find module '../question'.
    1346 | 
    1347 | export declare class Custom extends QuestionVue<QuestionCustomModel> {
  > 1348 |     readonly contentQuestion: import("../question").Question;
         |                                      ^
    1349 | }
    1350 | 
    1351 | 

 error  in .../node_modules/survey-vue/survey.vue.d.ts

ERROR in .../node_modules/survey-vue/survey.vue.d.ts(1353,35):
1353:35 Cannot find module '../panel'.
    1351 | 
    1352 | export declare class Composite extends QuestionVue<QuestionCompositeModel> {
  > 1353 |     readonly contentPanel: import("../panel").PanelModel;
         |                                   ^
    1354 | }
    1355 | 
    1356 | 

What is the expected behavior?

Build works

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

Install survey-vue@1.5.19, try and build with Typescript.

  • surveyjs platform (angular or react or jquery or knockout or vue): vue
Product
survey-library
Type
Enhancement
Description
Add settings.serializeLocalizableStringAsObject property
/**
   * Set to true to always serialize the localization string as object even if there is only one value for default locale. Instead of string "MyStr" serialize as {default: "MyStr"}
   */
serializeLocalizableStringAsObject: false

Example of using: Survey.settings.serializeLocalizableStringAsObject = true;

Product
survey-library
Type
Enhancement
Description
Improve numbering in panels

The following properties are added into panel: showNumber, showQuestionNumbers and questionStartIndex.

  /**
   * Set showNumber to true to start showing the number for this panel.
   * @see visibleIndex
   */
  public get showNumber(): boolean;
  public set showNumber(val): boolean;
  /**
   * Gets or sets a value that specifies how the elements numbers inside panel are displayed.
   *
   * The following options are available:
   *
   * - `default` - display questions numbers as defined in parent panel or survey
   * - `onpanel` - display questions numbers, start numbering from beginning of this page
   * - `off` - turn off the numbering for questions titles
   * @see showNumber
   */
  public get showQuestionNumbers(): string;
  public set showQuestionNumbers(value: string);

  /**
   * Gets or sets the first question index for elements inside the panel. The first question index is '1.' by default and it is taken from survey.questionStartIndex property.
   * You may start it from '100' or from 'A', by setting '100' or 'A' to this property.
   * You can set the start index to "(1)" or "# A)" or "a)" to render question number as (1), # A) and a) accordingly.
   * @see survey.questionStartIndex
   */
  public get questionStartIndex(): string;
  public set questionStartIndex(val: string);

For example, the numbering below will be possible by setting the following properties into panel1:

panel1.showNumer = true;
panel1.showQuestionNumbers = "onpanel";
panel1.questionStartIndex = "a)"
  1. Question 1
  2. Panel 1
  1. Question 1 Inside Panel 1
  2. Question 2 Inside Panel 1
  1. Question 2
Product
survey-library
Type
Enhancement
Description
Add event on changing properties in ItemValue object

The following event has been added:

  /**
   * Event that raised on changing property of the ItemValue object.
   * sender - the object that owns the property
   * options.propertyName - the property name to which ItemValue array is belong. It can be "choices" for dropdown question
   * options.obj - the instance of ItemValue object which property has been changed
   * options.name - the property of ItemObject that has been changed
   * options.oldValue - old value
   * options.newValue - new value
   */
  public onItemValuePropertyChanged: Event<(sender: Base, options: any) => any,  any>;

Here is the example of using:

matrixQuestion.onItemValuePropertyChanged.add(function(sender, options) {
  //If ItemValue in the "rows" array of the matrix, do something on changing "text" property
  if(options.propertyName == "rows" && options.name == "text") {
    //do something
  }
});
Product
survey-library
Type
Bug
Description
Round correctly rateValues for step less than 1 for rating question

In case rateStep is 0.1 in the rating question and rateMin/rateMax is 0/1 than we are getting values as: 0, 0.1, 0.2, 0.30000000000000004, ... The issue related to this issue: Why don’t my numbers, like 0.1 + 0.2 add up to a nice round 0.3, and instead I get a weird result like 0.30000000000000004?. Anyway, the behavior is not expected and expected behavior is to have values as: 0, 0.1, 0.2, 0.3, ...

Product
survey-library
Type
Enhancement
Description
Add Thai localization

Add Thai localization, created by our customer.

Product
survey-library
Type
Bug
Description
An exception raised in matrix with now standard rows and total row

matrix dropdown/dynamic raised exception in the following function: public get totalValue(): any if there is no standard rows and total row is shown

Product
survey-library
Type
Enhancement
Description
SurveyTriggerSetValue should clear the value if setValue is empty

To clear the question value, we can use SurveyTriggerSetValue with setValue is empty. For example:

  {
   "type": "setvalue",
   "expression": "{shippingSameAsBusiness} = false",
   "setToName": "shippingAddress"
  }

Question shippingAddress becomes empty on setting shippingSameAsBusiness question to false.

Product
survey-library
Type
Bug
Description
Could not override invisible property, by making it visible

The following code should make price property visible for class "itemorder" and invsible for base class "itemvalue"

  Serializer.addProperty("itemvalue", { name: "price:number", visible: false });
  Serializer.addClass(
    "itemorder",
    [
      {
        name: "price:number",
        visible: true,
      },
    ],
    function () {
      return new ItemValue(null, null, "itemorder");
    },
    "itemvalue"
  );

It doesn't work in v1.5.19

This test is not passed

QUnit.test("ItemValue value changed notifications", function (assert) {
  var itemValue = new ItemValue("item");
  var valueChangedCount = 0;
  itemValue.registerFunctionOnPropertyValueChanged(
    "value",
    () => {
      valueChangedCount++;
    },
    "val_changed"
  );
  itemValue.value = "Test";
  assert.equal(valueChangedCount, 1, "changed notification has been fired");
  itemValue.unRegisterFunctionOnPropertyValueChanged("value", "val_changed");
});

Related issue - https://surveyjs.answerdesk.io/ticket/details/t3783/dropdown-radiobutton-and-checkbox-item-value-dont-reflect

Product
survey-creator
Type
Enhancement
Description
Custom question: Setup question and hide complexity from your end-users

Let's say you want to allow your end-users to select a country. The current solution is to modify a "dropdown" question with some preset and put it into toolbox. The current code is the following:

creator
    .toolbox
    .addItem({
        name: "countries",
        isCopied: true,
        iconName: "icon-default",
        title: "All countries",
        json: {
            "type": "dropdown",
            optionsCaption: "Select a country...",
            choicesByUrl: {
                url: "https://restcountries.eu/rest/v2/all"
            }
        }
    })

The code is taken from toolbox customization example. What if you need more and what to add some code behind this definition. And how to hide all unneeded properties, like choices, choicesByUrl and many others, from this question, that is actually still a dropdown question.

We want you to inroduce a way, where you can easily create a new question type: "country" and end-user will operate with this question even in JSON as: { type: "country", name: "myCountry"}. It should be in Toolbox, end-user can't modify or access properties that he doesn't need for a country question. You do not need to write a specific code for a survey to handle it's events when needed. It becomes a component model.

Please read more in this document.

See also composite custom question (where you can setup several questions at once) functionality.

Let's say your users often create a survey that contains information about their/your clients. It may include first/last names, address, phones, birthdate and so on. Commonly, end-user have to drop several questions, setup them and layout them on the page or panel. End-user can copy these questions from one survey to another. However, as soon as he copies these questions into another survey, he would have to support several versions of client information. If he decides to add/remove/change a question (for example phone), then it would require to change it in several surveys. Additionally, it is not an easy task for a non-technical person.

Composite question will solve this problem. It will allow to create, for our example, question type: "customerinformation" with all setup questions located in one panel. The value in the survey will be stored as: questionName: {firstName: ClientFirstName, lastName: CliertLastName, ...}. End-user could not access to internal questions. He could not customize them. You will be able to write the code and add properties to customize the question on high level: hide/show different questions, for example show/hide birthdate or address question(s).

Please read more in this document.

See also custom question (where only one question is available) functionality.

Product
survey-creator
Type
Enhancement
Description
Introduce survey logo/title/description in-place editors

We need an ability to edit logo/title/description of a survey in SurveyJS Creator design surface.

Product
survey-creator
Type
Enhancement
Description
Select/delete text in the TitleInplaceEditor after focus

If a group has only one item and it is another group then expand it's by default. For example if shows only localizable strings with text and there is only one page in the survey, then expand it, or there is only one question in the page, then expand the question group.

Additionally hide the page header, if this page header becomes the root of the translation.

Here is the picture on showing "Translation" tab with the only one page and the only one question. image

Product
survey-creator
Type
Enhancement
Description
Support the maxLength limit for the title adorner

We need to implement an ability to limit text input in the inplace editors (title adorner and it descendants)

image

The following expression could not be parsed correctly:

Product
survey-creator
Type
Enhancement
Description
shortcut for undo and redo (keyboard shortcuts)
Product
survey-creator
Type
Bug
Description
Designer scrolls up when select a question by clicking on it

In some big surveys (like COVID-19 example) if click to questions on the bottom of the designer area then designer scrolls up. Also when click on question focus carries to the property grid and necessary one more click to question to focus it

Product
survey-analytics
Type
Bug
Description
`Node.prototype.append` doesn't work in IE11

Version: v1.5.19, released at Tuesday, April 7, 2020, Total Issue Count: 13

Product Type Description
survey-library Enhancement Min / max on numerical and date inputs

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

Feature

What is the current behavior?

Currently we can select the html input type, but not set additional attributes. Attributes that only apply to the text input type however are always configurable, even when not relevant. For text we have maxlength, minlength and pattern amongst others. For date attributes that apply (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date#Additional_attributes) are: max, min and step.

What is the expected behavior?

There should be some way to specify these attributes (without coding for every possible combination).

Proposed solution 1

Add a key value property that allows us to specify custom input attributes for this question type.

Proposed solution 2

Create a custom question type for each html input type. This is the best solution, but also requires a lot more work.

survey-library Enhancement showInMultipleColumns property for a column in matrix dynamic/matrix dropdown

Scenario: There is a need of combination of matrix (single choice) and matrices (multiple choices and dynamic). Instead of having a radiogroup or checkbox column, show several columns, where every button (radio or check) will be in a separate column. The related issue on SurveyJS Support Desk.

We introduced a showInMultipleColumns boolean property, it is false by default. For cellType equals to "checkbox" and "radiogroup", you can set it to true to show all visible choices into separate columns/cells.

Let's see the following json question:

{
  type: "matrixdropdown",
  name: "question1",
  columns: [
    {
      name: "col1",
      cellType: "dropdown",
      showInMultipleColumns: true,
      isRequired: true,
      choices: [
        "Strongly disagree",
        "Disagree",
        "Neutral",
        "Agree",
        "Strongly agree"
      ]
    },
    {
      name: "comment",
      title: "Please comment",
      cellType: "comment"
    }
  ],
  rows: [
    "Excited",
    "Enthusiastic",
    "Open",
    "Physically safe",
    "Emotionally safe",
    "Apprehensive",
    "Nervous",
    "Scared"
  ]
}

image

When you set showInMultipleColumns to true for the first column then column title is ignored and we get the following layout

image

As you see, we are getting cleaner UI.

survey-library Enhancement Implement SignaturePad as built-in question type

Until this moment SignaturePad question is available as the custom widget. It's a widely used question type and we decided to implement it in the SurveyJS Library.

survey-library Bug warning in react platform due to missing key props

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

bug report

What is the current behavior?

The following warning appears in the console in a react application:

Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of SurveyQuestion.

What is the expected behavior?

No warning, as key prop is provided for child elements.

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

I'm getting the warning with the matrix question.

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

See the console at the example: https://surveyjs.io/Examples/Library?id=questiontype-matrix&platform=Reactjs&theme=modern

Specify your

  • browser: Chrome
  • browser version: Version 80.0.3987.149 (Official Build) (64-bit)
  • surveyjs platform (angular or react or jquery or knockout or vue): react
  • surveyjs version: 1.5.17, 1.5.18
survey-library Enhancement Add min and max function for our expressions

We have sum and avg functions, but we don't have min and max function. Here is the example of expression: "min({question1}, {question2}, 0)" or "max({question1}, 10)".

survey-creator Bug "set" property editor doesn't support ajax request for getting choices

Hello!

To begin with, I would like to thank you for creating an excellent library!

So it’s my turn to add tags to the question.
The most suitable in my situation, I consider the "set" property editor.

But I have two questions:

  1. How can I get choises from the backend?
    Unfortunately choicesCallback parameter is null instead of function in choises function callback. It also doesn't support promises as I understand. So can you propose some other way?

  2. My backend return objects because I need to support localizations, but as I can see it supports only string values? Any suggestions?

survey-creator Bug Drop questions image has wrong size in IE
  1. Open Internet Explorer
  2. Go to https://surveyjs.io/create-survey
  3. ???
  4. Drop questions here image has wrong size

image

survey-creator Bug Condition Editor doesn't work with matrix dropdown if valueName property is used

If matrix dropdown has non empty valueName property, then Condition Editor stops working.

survey-creator Bug Condition Editor could not parse expression with calculated values

Condition Editor could not parse and build visual editor for expression when calculated values are using.

The initial bug was posted into our support desk.

survey-creator Bug Dropdown choice items in adorner don't reflect immediately changes from properties panel
survey-creator Enhancement Logic tab: Remove new item section and allow to modify action type for existing action

Allow to modify an action type for an action item. End-user could change question visiblity on quesiton enable/disable action type, for example. On creating a new logic item, create a new action by default with non-set action type. UI becomes better, there is no concepts of new action section. New action section was removed. image

survey-analytics Bug Question Matrix Dropdown doesn't work

Version: 1.5.13 Plunkr: https://plnkr.co/edit/pMMil9MHjY2eoeIXodHB?p=preview (open console and click Complete)

Error:

Uncaught TypeError: Cannot read property 'appendChild' of null
    at VisualizationPanel.render (visualizationPanel.ts:240)
    at VisualizationMatrixDynamic.VisualizationPanelDynamic.render (visualizationPanelDynamic.ts:33)
    at VisualizationPanel.renderVisualizer (visualizationPanel.ts:209)
    at visualizationPanel.ts:227
    at Array.forEach (<anonymous>)
    at VisualizationPanel.render (visualizationPanel.ts:226)
    at Array.<anonymous> (index.js:63)
    at Event.fire (base.ts:1065)
    at SurveyModel.doComplete (survey.ts:2694)
    at SurveyModel.doCurrentPageCompleteCore (survey.ts:2493)
survey-analytics Bug error TS2702: 'DataTables' only refers to a type, but is being used as a namespace here.

With this commit https://github.com/surveyjs/survey-analytics/commit/f53302a6a65ddd55d427ccdc5597931e82e80efb DataTables.Settings is used, but no such type exists. Therefor upon building, this leads to: ERROR in node_modules/survey-analytics/survey.analytics.d.ts:234:33 - error TS2702: 'DataTables' only refers to a type, but is being used as a namespace here.

Version: v1.5.19, released at Tuesday, April 7, 2020, Total Issue Count: 13

Product
survey-library
Type
Enhancement
Description
Min / max on numerical and date inputs

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

Feature

What is the current behavior?

Currently we can select the html input type, but not set additional attributes. Attributes that only apply to the text input type however are always configurable, even when not relevant. For text we have maxlength, minlength and pattern amongst others. For date attributes that apply (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date#Additional_attributes) are: max, min and step.

What is the expected behavior?

There should be some way to specify these attributes (without coding for every possible combination).

Proposed solution 1

Add a key value property that allows us to specify custom input attributes for this question type.

Proposed solution 2

Create a custom question type for each html input type. This is the best solution, but also requires a lot more work.

Product
survey-library
Type
Enhancement
Description
showInMultipleColumns property for a column in matrix dynamic/matrix dropdown

Scenario: There is a need of combination of matrix (single choice) and matrices (multiple choices and dynamic). Instead of having a radiogroup or checkbox column, show several columns, where every button (radio or check) will be in a separate column. The related issue on SurveyJS Support Desk.

We introduced a showInMultipleColumns boolean property, it is false by default. For cellType equals to "checkbox" and "radiogroup", you can set it to true to show all visible choices into separate columns/cells.

Let's see the following json question:

{
  type: "matrixdropdown",
  name: "question1",
  columns: [
    {
      name: "col1",
      cellType: "dropdown",
      showInMultipleColumns: true,
      isRequired: true,
      choices: [
        "Strongly disagree",
        "Disagree",
        "Neutral",
        "Agree",
        "Strongly agree"
      ]
    },
    {
      name: "comment",
      title: "Please comment",
      cellType: "comment"
    }
  ],
  rows: [
    "Excited",
    "Enthusiastic",
    "Open",
    "Physically safe",
    "Emotionally safe",
    "Apprehensive",
    "Nervous",
    "Scared"
  ]
}

image

When you set showInMultipleColumns to true for the first column then column title is ignored and we get the following layout

image

As you see, we are getting cleaner UI.

Product
survey-library
Type
Enhancement
Description
Implement SignaturePad as built-in question type

Until this moment SignaturePad question is available as the custom widget. It's a widely used question type and we decided to implement it in the SurveyJS Library.

Product
survey-library
Type
Bug
Description
warning in react platform due to missing key props

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

bug report

What is the current behavior?

The following warning appears in the console in a react application:

Warning: Each child in an array or iterator should have a unique "key" prop. Check the render method of SurveyQuestion.

What is the expected behavior?

No warning, as key prop is provided for child elements.

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

I'm getting the warning with the matrix question.

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

See the console at the example: https://surveyjs.io/Examples/Library?id=questiontype-matrix&platform=Reactjs&theme=modern

Specify your

  • browser: Chrome
  • browser version: Version 80.0.3987.149 (Official Build) (64-bit)
  • surveyjs platform (angular or react or jquery or knockout or vue): react
  • surveyjs version: 1.5.17, 1.5.18
Product
survey-library
Type
Enhancement
Description
Add min and max function for our expressions

We have sum and avg functions, but we don't have min and max function. Here is the example of expression: "min({question1}, {question2}, 0)" or "max({question1}, 10)".

Hello!

To begin with, I would like to thank you for creating an excellent library!

So it’s my turn to add tags to the question.
The most suitable in my situation, I consider the "set" property editor.

But I have two questions:

  1. How can I get choises from the backend?
    Unfortunately choicesCallback parameter is null instead of function in choises function callback. It also doesn't support promises as I understand. So can you propose some other way?

  2. My backend return objects because I need to support localizations, but as I can see it supports only string values? Any suggestions?

Product
survey-creator
Type
Bug
Description
Drop questions image has wrong size in IE
  1. Open Internet Explorer
  2. Go to https://surveyjs.io/create-survey
  3. ???
  4. Drop questions here image has wrong size

image

If matrix dropdown has non empty valueName property, then Condition Editor stops working.

Product
survey-creator
Type
Bug
Description
Condition Editor could not parse expression with calculated values

Condition Editor could not parse and build visual editor for expression when calculated values are using.

The initial bug was posted into our support desk.

Allow to modify an action type for an action item. End-user could change question visiblity on quesiton enable/disable action type, for example. On creating a new logic item, create a new action by default with non-set action type. UI becomes better, there is no concepts of new action section. New action section was removed. image

Product
survey-analytics
Type
Bug
Description
Question Matrix Dropdown doesn't work

Version: 1.5.13 Plunkr: https://plnkr.co/edit/pMMil9MHjY2eoeIXodHB?p=preview (open console and click Complete)

Error:

Uncaught TypeError: Cannot read property 'appendChild' of null
    at VisualizationPanel.render (visualizationPanel.ts:240)
    at VisualizationMatrixDynamic.VisualizationPanelDynamic.render (visualizationPanelDynamic.ts:33)
    at VisualizationPanel.renderVisualizer (visualizationPanel.ts:209)
    at visualizationPanel.ts:227
    at Array.forEach (<anonymous>)
    at VisualizationPanel.render (visualizationPanel.ts:226)
    at Array.<anonymous> (index.js:63)
    at Event.fire (base.ts:1065)
    at SurveyModel.doComplete (survey.ts:2694)
    at SurveyModel.doCurrentPageCompleteCore (survey.ts:2493)

With this commit https://github.com/surveyjs/survey-analytics/commit/f53302a6a65ddd55d427ccdc5597931e82e80efb DataTables.Settings is used, but no such type exists. Therefor upon building, this leads to: ERROR in node_modules/survey-analytics/survey.analytics.d.ts:234:33 - error TS2702: 'DataTables' only refers to a type, but is being used as a namespace here.

Version: v1.5.18, released at Tuesday, March 31, 2020, Total Issue Count: 21

Product Type Description
survey-library Enhancement Simplify question.addError() function API, allow to use string as parameter.

The following code is rather complex. question.addError(new Survey.CustomError("my error text)); If a developer wants to show just an error with his text, the most common case. then the API should be question.addError(my error text);, as result the typescript API: public addError(error: SurveyError | string).

survey-library Bug requireText doesn't rendered correctly in question title in Modern theme

Because of style .sv-question__required-text requried text renders in incorrect location in question title.

survey-library Enhancement Add event to control scrolling elemen on top.

Add an event that will allow to scroll/show element inside the survey on page using external code instead the default code. It requires in case of there is a header with a fixed height on the page.

  /**
   * Use this event to control scrolling element to top. You can cancel the default behavior by setting options.cancel property to true.
   * <br/> `sender` - the survey object that fires the event.
   * <br/> `options.element` - an element that is going to be scrolled on top.
   * <br/> `options.question` - a question that is going to be scrolled on top. It can be null if options.page is not null.
   * <br/> `options.page` - a page that is going to be scrolled on top. It can be null if options.question is not null.
   * <br/> `options.elementId` - the unique element DOM Id.
   * <br/> `options.cancel` - set this property to true to cancel the default scrolling.
   */
  public onScrollingElementToTop: Event<
    (sender: SurveyModel, options: any) => any,
    any
  > = new Event<(sender: SurveyModel, options: any) => any, any>();

survey-library Bug Single boolean question vs. going to the next page automatically

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

A logic bug, or maybe I'm missing something

What is the current behavior?

I'm trying to build a one-question-per page questionnaire with 6-7 questions in total. To reuse an example of a solved issue, lets assume this scenario:

Question 1 is "Do you have a car?" with a boolean question yes/no. I want the form to continue to the next question via the setting "On answering all questions, go to the next page automatically". If people say no/false, there should be a follow-up boolean with "Do you want to buy one?" (on a new page or directly afterwards, doesn't matter where) which follows the logic "enable and visible if {car} = false". So far so good, but no matter where I click on the boolean item, its behaviour always goes to true first before I can switch it to false. In this scenario, you can only answer yes and proceed to the next question immediately without being able to answer no and get to see the other question, does that make sense?

What is the expected behavior?

If I click on the left side of the boolean button, it should go to the left/false and if I click on the right side, it should go to right/true.

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

As stated above.

Specify your

  • browser: Firefox/Chrome
  • browser version: Latest
survey-library Bug colum.totalFormat in QuestionMatrixDropdown/Dynamic uses for default locale only

When using a question of type matrixdropdown, the strings defined for the total of the column through totalFormat are shown in default locale only.

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

Reporting bug

What is the current behavior?

When changing the language, totalFormat is not translated and is always set to the default language

What is the expected behavior?

When changing the language, totalFormat should be set to the string defined by the chosen language

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

Use the JSON definition below and test it with surveyJS v1.5.17, try to switch bewteen english, french and german and observe how the string of the total of the columns are not translated.

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

Here is a miniaml working example

{
 "title": {
  "default": "Test survey",
  "fr": "Questionnaire de test",
  "de": "Testumfrage"
 },
 "pages": [
  {
   "name": "events",
   "elements": [
    {
     "type": "matrixdropdown",
     "name": "matrix_test",
     "title": {
      "default": "test Matrix",
      "fr": "Matrice de test",
      "de": "Testmatrize"
     },
     "isRequired": true,
     "columns": [
      {
       "name": "col1",
       "title": {
        "default": "Column 1",
        "fr": "Colonne 1",
        "de": "Spalt 1"
       },
       "cellType": "text",
       "isRequired": true,
       "validators": [
        {
         "type": "numeric",
         "minValue": 0,
         "maxValue": 300
        }
       ],
       "totalType": "sum",
       "totalFormat": {
        "default": "Total column 1: {0}",
        "de": "Total Spalt 1: {0}",
        "fr": "Total colonne 1: {0}"
       },
       "totalDisplayStyle": "decimal",
       "inputType": "number"
      },
      {
       "name": "col2",
       "title": {
        "default": "Column 2",
        "fr": "Colonne 2",
        "de": "Spalt 2"
       },
       "cellType": "text",
       "isRequired": true,
       "totalType": "sum",
       "totalFormat": {
        "default": "Total column 2: {0}",
        "fr": "Total colonne 2: {0}",
        "de": "Total Spalt 2: {0}"
       },
       "totalDisplayStyle": "decimal",
       "inputType": "number"
      },
      {
       "name": "col3",
       "title": {
        "default": "Column 3",
        "fr": "Colonne 3",
        "de": "Spalt 3"
       },
       "cellType": "text",
       "isRequired": true,
       "validators": [
        {
         "type": "numeric",
         "minValue": 0,
         "maxValue": 300
        }
       ],
       "totalType": "sum",
       "totalFormat": {
        "default": "Total column 3: {0}",
        "fr": "Total colonne 4: {0}",
        "de": "Total Spalt 3: {0}"
       },
       "totalDisplayStyle": "decimal",
       "inputType": "number"
      }
     ],
     "rows": [
      {
       "value": "one",
       "text": {
        "default": "One",
        "fr": " Un",
        "de": " Ein"
       }
      },
      {
       "value": "two",
       "text": {
        "default": "Two",
        "fr": "Deux",
        "de": "Zwei"
       }
      },
      {
       "value": "three",
       "text": {
        "default": "Three",
        "fr": "Trois",
        "de": "Drei"
       }
      }
     ]
    }
   ],
   "title": {
    "default": "Events",
    "fr": "Evénements",
    "de": "Veranstaltungen"
   }
  }
 ]
}

Specify your

  • browser: Firefox
  • browser version: 74.0
  • surveyjs platform (angular or react or jquery or knockout or vue): using https://surveyjs.io
  • surveyjs version: v1.5.17
survey-library Bug survey.getQuestionByName doesn't work correctly when caseInsensitive is true

The following code doesn't work correctly. question is null, but it should not. questionByName function should convert to lowercase question name if caseInsensitive parameter is true.

  var survey = new SurveyModel({
    elements: [
      {
        type: "text",
        name: "Q1"
      }
    ]
  });
var question = survey.getQuestionByName("Q1", true);
//question should not be null
survey-library Bug Changing Question Matrix Dropdown rows array doesn't re-render the table

The issue

The following code, where matrix is QuestionMatrixDropdown doesn't re-render the table matrix.rows.push(new ItemValue("row2")); or matrix.rows.splice(0, 1)

The expected bevahior

It should re-render the table and add or remove a row.

survey-library Enhancement Add row property into options parameter for survey.onMatrixRowAdded event

Here is the scenario. The property defaultValueFromLastRow for matrix dynamic is set to true. Values from new added rows are copied from the preview row. However, there is a need to clear a value in a column. Here is the working example. The code in event is the following:

survey.onMatrixRowAdded.add(function(sender, options) {
    var rows = options.question.visibleRows;
    var addedRow = rows[rows.length - 1];
    addedRow.getQuestionByColumnName('subject').clearValue();
});

When it should be:

survey.onMatrixRowAdded.add(function(sender, options) {
    options.row.getQuestionByColumnName('subject').clearValue();
});

survey-library Enhancement Use file input decorator in the "default" theme

Until this moment in the "default" theme file question browser rendered native input "file" button. This didn't allow to localize the button caption.

See the https://surveyjs.answerdesk.io/ticket/details/t3677/localization-issue-for-file-control-in-file-type-question thread for more details.

We can improve it if use the markup from the modern theme.

survey-library Bug Accessibility Issue: Aria label missing in question title
survey-library Enhancement Remove obsolete question.addConditionNames function

SurveJS Creator used question.addConditionNames, but for many releases it uses question.addConditionObjectsByContext and question.addConditionNames is not needed and can be removed.

survey-library Bug question.addConditionObjectsByContext function doesn't use valueName

addConditionObjectsByContext should use question.getValueName() instead of question.name. SurveyJS Creator use this function in Condition Property Editor.

survey-creator Bug Dynamic matrix default value editor type is not changed
  1. Go to https://surveyjs.io/create-survey/
  2. Add matrix dynamic question
  3. Change cell type
  4. ???
  5. Default value editor in Data tab not changes the type (also default value editor hasn't full width)

image

survey-creator Bug Rating question's hasComment toggle has old design
  1. Go to https://surveyjs.io/create-survey
  2. Add rating question
  3. Check hasComment proerty
  4. ???
  5. Property has old design image
survey-creator Bug Skip trigger doesn't correctly show in logic tab on editing

GotoName selector (dropdown) is empty on editing logic item in logic tab.

survey-creator Enhancement Improve page editor

Add an option to hide dropdown page selector Move the "Add new page" button closer to pages Implement dynamic scrolling

image

In order to hide dropdown page selector one need to set the following option:

  var options = {
    showDropdownPageSelector: false
  };
  var creator = new SurveyCreator.SurveyCreator("creatorElement", options);
survey-creator Enhancement Change logic UI: Setup new action before adding it.

The current UI confused end-user. They have to add an action first and then go upper and setup it. The better UI is to set the action first and then add it.

image

survey-creator Enhancement Add "Refresh" button for Default Value and Correct Value properties

Default Value and Correct Value properties shows the survey inside, that can be out of date because end-user changed properties like choices, columns and rows. "Refresh" button allows to update the survey for choosing value to get the latest changes made by end-user.

survey-creator Enhancement Performance improvement: Do not setup property editors in invisible tabs

Setup property editors on demands, when end-user opens/expand the tab.

survey-creator Enhancement Update expressions on changing question.valueName

Right now we do not update expressions on changing question.valueName property and update them on question.name property changing only. It is wrong. We have to:

  1. Ignor changing question.name if question.valueName property is not empty
  2. On changing valueName from empty to a value, rename expressions by replacing question.name with question.valueName
  3. On changing valueName from one value to another, update expressions by replacing question.valueName from old value to new value.
  4. On clearing valueName update expressions by replacing old value of question.valueName with question.name
survey-creator Bug Add rateValues property into rating column editor for matrix dynamic/dropdown

We did not allow to change the rateValues property for rating column.

Version: v1.5.18, released at Tuesday, March 31, 2020, Total Issue Count: 21

Product
survey-library
Type
Enhancement
Description
Simplify question.addError() function API, allow to use string as parameter.

The following code is rather complex. question.addError(new Survey.CustomError("my error text)); If a developer wants to show just an error with his text, the most common case. then the API should be question.addError(my error text);, as result the typescript API: public addError(error: SurveyError | string).

Because of style .sv-question__required-text requried text renders in incorrect location in question title.

Product
survey-library
Type
Enhancement
Description
Add event to control scrolling elemen on top.

Add an event that will allow to scroll/show element inside the survey on page using external code instead the default code. It requires in case of there is a header with a fixed height on the page.

  /**
   * Use this event to control scrolling element to top. You can cancel the default behavior by setting options.cancel property to true.
   * <br/> `sender` - the survey object that fires the event.
   * <br/> `options.element` - an element that is going to be scrolled on top.
   * <br/> `options.question` - a question that is going to be scrolled on top. It can be null if options.page is not null.
   * <br/> `options.page` - a page that is going to be scrolled on top. It can be null if options.question is not null.
   * <br/> `options.elementId` - the unique element DOM Id.
   * <br/> `options.cancel` - set this property to true to cancel the default scrolling.
   */
  public onScrollingElementToTop: Event<
    (sender: SurveyModel, options: any) => any,
    any
  > = new Event<(sender: SurveyModel, options: any) => any, any>();

Product
survey-library
Type
Bug
Description
Single boolean question vs. going to the next page automatically

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

A logic bug, or maybe I'm missing something

What is the current behavior?

I'm trying to build a one-question-per page questionnaire with 6-7 questions in total. To reuse an example of a solved issue, lets assume this scenario:

Question 1 is "Do you have a car?" with a boolean question yes/no. I want the form to continue to the next question via the setting "On answering all questions, go to the next page automatically". If people say no/false, there should be a follow-up boolean with "Do you want to buy one?" (on a new page or directly afterwards, doesn't matter where) which follows the logic "enable and visible if {car} = false". So far so good, but no matter where I click on the boolean item, its behaviour always goes to true first before I can switch it to false. In this scenario, you can only answer yes and proceed to the next question immediately without being able to answer no and get to see the other question, does that make sense?

What is the expected behavior?

If I click on the left side of the boolean button, it should go to the left/false and if I click on the right side, it should go to right/true.

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

As stated above.

Specify your

  • browser: Firefox/Chrome
  • browser version: Latest

When using a question of type matrixdropdown, the strings defined for the total of the column through totalFormat are shown in default locale only.

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

Reporting bug

What is the current behavior?

When changing the language, totalFormat is not translated and is always set to the default language

What is the expected behavior?

When changing the language, totalFormat should be set to the string defined by the chosen language

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

Use the JSON definition below and test it with surveyJS v1.5.17, try to switch bewteen english, french and german and observe how the string of the total of the columns are not translated.

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

Here is a miniaml working example

{
 "title": {
  "default": "Test survey",
  "fr": "Questionnaire de test",
  "de": "Testumfrage"
 },
 "pages": [
  {
   "name": "events",
   "elements": [
    {
     "type": "matrixdropdown",
     "name": "matrix_test",
     "title": {
      "default": "test Matrix",
      "fr": "Matrice de test",
      "de": "Testmatrize"
     },
     "isRequired": true,
     "columns": [
      {
       "name": "col1",
       "title": {
        "default": "Column 1",
        "fr": "Colonne 1",
        "de": "Spalt 1"
       },
       "cellType": "text",
       "isRequired": true,
       "validators": [
        {
         "type": "numeric",
         "minValue": 0,
         "maxValue": 300
        }
       ],
       "totalType": "sum",
       "totalFormat": {
        "default": "Total column 1: {0}",
        "de": "Total Spalt 1: {0}",
        "fr": "Total colonne 1: {0}"
       },
       "totalDisplayStyle": "decimal",
       "inputType": "number"
      },
      {
       "name": "col2",
       "title": {
        "default": "Column 2",
        "fr": "Colonne 2",
        "de": "Spalt 2"
       },
       "cellType": "text",
       "isRequired": true,
       "totalType": "sum",
       "totalFormat": {
        "default": "Total column 2: {0}",
        "fr": "Total colonne 2: {0}",
        "de": "Total Spalt 2: {0}"
       },
       "totalDisplayStyle": "decimal",
       "inputType": "number"
      },
      {
       "name": "col3",
       "title": {
        "default": "Column 3",
        "fr": "Colonne 3",
        "de": "Spalt 3"
       },
       "cellType": "text",
       "isRequired": true,
       "validators": [
        {
         "type": "numeric",
         "minValue": 0,
         "maxValue": 300
        }
       ],
       "totalType": "sum",
       "totalFormat": {
        "default": "Total column 3: {0}",
        "fr": "Total colonne 4: {0}",
        "de": "Total Spalt 3: {0}"
       },
       "totalDisplayStyle": "decimal",
       "inputType": "number"
      }
     ],
     "rows": [
      {
       "value": "one",
       "text": {
        "default": "One",
        "fr": " Un",
        "de": " Ein"
       }
      },
      {
       "value": "two",
       "text": {
        "default": "Two",
        "fr": "Deux",
        "de": "Zwei"
       }
      },
      {
       "value": "three",
       "text": {
        "default": "Three",
        "fr": "Trois",
        "de": "Drei"
       }
      }
     ]
    }
   ],
   "title": {
    "default": "Events",
    "fr": "Evénements",
    "de": "Veranstaltungen"
   }
  }
 ]
}

Specify your

  • browser: Firefox
  • browser version: 74.0
  • surveyjs platform (angular or react or jquery or knockout or vue): using https://surveyjs.io
  • surveyjs version: v1.5.17

The following code doesn't work correctly. question is null, but it should not. questionByName function should convert to lowercase question name if caseInsensitive parameter is true.

  var survey = new SurveyModel({
    elements: [
      {
        type: "text",
        name: "Q1"
      }
    ]
  });
var question = survey.getQuestionByName("Q1", true);
//question should not be null

The issue

The following code, where matrix is QuestionMatrixDropdown doesn't re-render the table matrix.rows.push(new ItemValue("row2")); or matrix.rows.splice(0, 1)

The expected bevahior

It should re-render the table and add or remove a row.

Product
survey-library
Type
Enhancement
Description
Add row property into options parameter for survey.onMatrixRowAdded event

Here is the scenario. The property defaultValueFromLastRow for matrix dynamic is set to true. Values from new added rows are copied from the preview row. However, there is a need to clear a value in a column. Here is the working example. The code in event is the following:

survey.onMatrixRowAdded.add(function(sender, options) {
    var rows = options.question.visibleRows;
    var addedRow = rows[rows.length - 1];
    addedRow.getQuestionByColumnName('subject').clearValue();
});

When it should be:

survey.onMatrixRowAdded.add(function(sender, options) {
    options.row.getQuestionByColumnName('subject').clearValue();
});

Product
survey-library
Type
Enhancement
Description
Use file input decorator in the "default" theme

Until this moment in the "default" theme file question browser rendered native input "file" button. This didn't allow to localize the button caption.

See the https://surveyjs.answerdesk.io/ticket/details/t3677/localization-issue-for-file-control-in-file-type-question thread for more details.

We can improve it if use the markup from the modern theme.

Product
survey-library
Type
Bug
Description
Accessibility Issue: Aria label missing in question title
Product
survey-library
Type
Enhancement
Description
Remove obsolete question.addConditionNames function

SurveJS Creator used question.addConditionNames, but for many releases it uses question.addConditionObjectsByContext and question.addConditionNames is not needed and can be removed.

Product
survey-library
Type
Bug
Description
question.addConditionObjectsByContext function doesn't use valueName

addConditionObjectsByContext should use question.getValueName() instead of question.name. SurveyJS Creator use this function in Condition Property Editor.

Product
survey-creator
Type
Bug
Description
Dynamic matrix default value editor type is not changed
  1. Go to https://surveyjs.io/create-survey/
  2. Add matrix dynamic question
  3. Change cell type
  4. ???
  5. Default value editor in Data tab not changes the type (also default value editor hasn't full width)

image

Product
survey-creator
Type
Bug
Description
Rating question's hasComment toggle has old design
  1. Go to https://surveyjs.io/create-survey
  2. Add rating question
  3. Check hasComment proerty
  4. ???
  5. Property has old design image
Product
survey-creator
Type
Bug
Description
Skip trigger doesn't correctly show in logic tab on editing

GotoName selector (dropdown) is empty on editing logic item in logic tab.

Product
survey-creator
Type
Enhancement
Description
Improve page editor

Add an option to hide dropdown page selector Move the "Add new page" button closer to pages Implement dynamic scrolling

image

In order to hide dropdown page selector one need to set the following option:

  var options = {
    showDropdownPageSelector: false
  };
  var creator = new SurveyCreator.SurveyCreator("creatorElement", options);
Product
survey-creator
Type
Enhancement
Description
Change logic UI: Setup new action before adding it.

The current UI confused end-user. They have to add an action first and then go upper and setup it. The better UI is to set the action first and then add it.

image

Product
survey-creator
Type
Enhancement
Description
Add "Refresh" button for Default Value and Correct Value properties

Default Value and Correct Value properties shows the survey inside, that can be out of date because end-user changed properties like choices, columns and rows. "Refresh" button allows to update the survey for choosing value to get the latest changes made by end-user.

Product
survey-creator
Type
Enhancement
Description
Performance improvement: Do not setup property editors in invisible tabs

Setup property editors on demands, when end-user opens/expand the tab.

Product
survey-creator
Type
Enhancement
Description
Update expressions on changing question.valueName

Right now we do not update expressions on changing question.valueName property and update them on question.name property changing only. It is wrong. We have to:

  1. Ignor changing question.name if question.valueName property is not empty
  2. On changing valueName from empty to a value, rename expressions by replacing question.name with question.valueName
  3. On changing valueName from one value to another, update expressions by replacing question.valueName from old value to new value.
  4. On clearing valueName update expressions by replacing old value of question.valueName with question.name

We did not allow to change the rateValues property for rating column.

Version: v1.5.17, released at Wednesday, March 25, 2020, Total Issue Count: 7

Product Type Description
survey-library BreakingChange Change question title rendering, render separately number, title and require texts.

This is the second rewriting the way we are rendering question title and we hope it is the last one. Initially we were rendering question title using the template, survey.questionTitleTemplate. By default, it was: “. ”. So, the question title renders as: “1. What is your name?*”

It works perfectly. End-users can change the template in any way they want, for example to: “) ”, and result becomes: “1) * What is your Name?”.

Unfortunately, this approach does not allow to give different styles for numbering and require text. There are many requests of this. For example, to render a cycle around the number or render the required (*) text in red color. There was a work-around to do it, by using mark-down, but it was an overcomplicated solution.

As result we decided to start render question number, title and require texts separately. Additionally two news styles were introduced: . sv-question__num and . sv-question__required-text. Developer needs to override these styles to change question number and require text look. It works perfectly, unless the survey.questionTitleTemplate is not changed. If it is changed, then we are rendering them as one string. It needs when somebody needs require text in another position or want to have another symbol, instead of dot, in numbering, for example “(1)” or “# 1”, instead of “1.”.

New property We review many requests and come to conclusion that we can replace survey.questionTitleTemplate with a simple choice property. We introduced a new property survey.questionTitlePattern. There are four choices: numTitleRequire, “1. What is your name? ”, it is a default value numRequireTitle, “1. * What is your name?” requireNumTitle, “ 1. What is your name?” numTitle, “1. What is your name?”, do not show require text at all. You can change the title style to point end-users that the question is required.

Important survey.questionTitleTemplate becomes obsolete. It is loaded into survey model, but doesn’t serialized back. Survey Model on setting the property will try to convert the template into according questionTitlePattern proeprty. For example “ ) ” will change survey.questionTitlePattern into “requireNumTitle” value. Additionally, survey.questionStartIndex becomes “1)”.

Prefix and postfix for numbering Another change, survey.questionStartIndex has a prefix and postfix now. The default value is “1.”, where "1" tells that you want to start your question numbering from 1 and postfix is “.”. You can set it to “# 1)” or “(a)”. It is the alternative to questionTitleTemplate where you were able to have a prefix and postfix for numbering. We hope it solves all know issues and allows to introduce you what you require with minimum/zero coding.

survey-library Enhancement Add comment and other value entered text to the survey result plain data

At this moment comment and other value text are missing in the the survey result plain data.

Question JSON:

      {
        type: "checkbox",
        name: "q1",
        hasOther: true,
        choices: [ "lion", "giraffe", "panda", "camel" ]
      }

Plain data with other and giraffe selected:

{
    "name": "q1",
    "title": "q1",
    "value": [
        "other",
        "giraffe"
    ],
    "displayValue": "Other value text, giraffe",
    "isNode": true,
    "data": [
        {
            "name": 0,
            "title": "Choice",
            "value": "other",
            "displayValue": "Other value text",
            "isNode": false,
            "isOther": true
        },
        {
            "name": 1,
            "title": "Choice",
            "value": "giraffe",
            "displayValue": "giraffe",
            "isNode": false
        }
    ]
}

Question JSON:

      {
        type: "checkbox",
        name: "q1",
        hasComment: true,
        choices: [ "lion", "giraffe", "panda", "camel" ]
      }

Plain data with comment entered and giraffe selected:

{
    "name": "q1",
    "title": "q1",
    "value": [
        "giraffe"
    ],
    "displayValue": "giraffe",
    "isNode": true,
    "data": [
        {
            "name": 0,
            "isComment": true,
            "title": "Comment",
            "value": "-Comment",
            "displayValue": "Comment text",
            "isNode": false
        },
        {
            "name": 0,
            "title": "Choice",
            "value": "giraffe",
            "displayValue": "giraffe",
            "isNode": false
        }
    ]
}

Question JSON:

      {
        type: "radiogroup",
        name: "q1",
        hasOther: true,
        choices: [ "lion", "giraffe", "panda", "camel" ]
      }

Plain data with other selected:

{
    "name": "q1",
    "title": "q1",
    "value": [
        "other"
    ],
    "displayValue": "Other value text",
    "isNode": true,
    "data": [
        {
            "name": 0,
            "title": "Choice",
            "value": "other",
            "displayValue": "Other value text",
            "isNode": false,
            "isOther": true
        }
    ]
}

Question JSON:

      {
        type: "radiogroup",
        name: "q1",
        hasComment: true,
        choices: [ "lion", "giraffe", "panda", "camel" ]
      }

Plain data with giraffe selected and comment entered:

{
    "name": "q1",
    "title": "q1",
    "value": [
        "giraffe"
    ],
    "displayValue": "giraffe",
    "isNode": true,
    "data": [
        {
            "name": 0,
            "isComment": true,
            "title": "Comment",
            "value": "-Comment",
            "displayValue": "Comment text",
            "isNode": false
        },
        {
            "name": 0,
            "title": "Choice",
            "value": "giraffe",
            "displayValue": "giraffe",
            "isNode": false
        }
    ]
}
survey-library Enhancement Introduce the "image" question type

We need to have an ability to add static images of different size to surveys. We need to implement an image question that allows to show given image, like below: image

It should support the following attributes:

  • image link
  • image width
  • image height
survey-creator Enhancement Introduce the allowRemoveAllItems option for items editor

We need the option to hide this button: image

survey-creator Enhancement Introduce onCanDeleteItem event
  /**
   * The event is called before rendering a delete button in the Property Grid or in Question Editor.
   * <br/> sender the survey creator object that fires the event
   * <br/> options.obj the survey Question
   * <br/> options.item the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties
   * <br/> options.canDelete a boolean value. It is true by default. Set it false to remove delete button from the Property Grid or in Question Editor
   */
  public onCanDeleteItem: Survey.Event<
    (sender: SurveyCreator, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyCreator, options: any) => any, any>();
survey-creator Enhancement Get rid of surveyjs ID in HTML elements

This is a bad practice to address HTML elements in the re-usable library via IDs. This can cause issues of different kind - from accessibility to bugs.

See the https://surveyjs.answerdesk.io/ticket/details/t3645/accessibility-issue-for-duplicate-id thread for more details.

survey-creator Enhancement Introduce the onNotify event

This event can be used to override the end-user notifications: instead of the default alert() function the option.message can be show via custom notification library

  /**
   * The event is called in case of UI notifications. By default all notifications are done via built-in alert () function.
   * In case of any subscriptions to this event all notifications will be redirected into the event handler.
   * <br/> options.message is a message to show.
   */
  public onNotify: Survey.Event<
    (sender: SurveyCreator, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyCreator, options: any) => any, any>();

Version: v1.5.17, released at Wednesday, March 25, 2020, Total Issue Count: 7

Product
survey-library
Type
BreakingChange
Description
Change question title rendering, render separately number, title and require texts.

This is the second rewriting the way we are rendering question title and we hope it is the last one. Initially we were rendering question title using the template, survey.questionTitleTemplate. By default, it was: “. ”. So, the question title renders as: “1. What is your name?*”

It works perfectly. End-users can change the template in any way they want, for example to: “) ”, and result becomes: “1) * What is your Name?”.

Unfortunately, this approach does not allow to give different styles for numbering and require text. There are many requests of this. For example, to render a cycle around the number or render the required (*) text in red color. There was a work-around to do it, by using mark-down, but it was an overcomplicated solution.

As result we decided to start render question number, title and require texts separately. Additionally two news styles were introduced: . sv-question__num and . sv-question__required-text. Developer needs to override these styles to change question number and require text look. It works perfectly, unless the survey.questionTitleTemplate is not changed. If it is changed, then we are rendering them as one string. It needs when somebody needs require text in another position or want to have another symbol, instead of dot, in numbering, for example “(1)” or “# 1”, instead of “1.”.

New property We review many requests and come to conclusion that we can replace survey.questionTitleTemplate with a simple choice property. We introduced a new property survey.questionTitlePattern. There are four choices: numTitleRequire, “1. What is your name? ”, it is a default value numRequireTitle, “1. * What is your name?” requireNumTitle, “ 1. What is your name?” numTitle, “1. What is your name?”, do not show require text at all. You can change the title style to point end-users that the question is required.

Important survey.questionTitleTemplate becomes obsolete. It is loaded into survey model, but doesn’t serialized back. Survey Model on setting the property will try to convert the template into according questionTitlePattern proeprty. For example “ ) ” will change survey.questionTitlePattern into “requireNumTitle” value. Additionally, survey.questionStartIndex becomes “1)”.

Prefix and postfix for numbering Another change, survey.questionStartIndex has a prefix and postfix now. The default value is “1.”, where "1" tells that you want to start your question numbering from 1 and postfix is “.”. You can set it to “# 1)” or “(a)”. It is the alternative to questionTitleTemplate where you were able to have a prefix and postfix for numbering. We hope it solves all know issues and allows to introduce you what you require with minimum/zero coding.

Product
survey-library
Type
Enhancement
Description
Add comment and other value entered text to the survey result plain data

At this moment comment and other value text are missing in the the survey result plain data.

Question JSON:

      {
        type: "checkbox",
        name: "q1",
        hasOther: true,
        choices: [ "lion", "giraffe", "panda", "camel" ]
      }

Plain data with other and giraffe selected:

{
    "name": "q1",
    "title": "q1",
    "value": [
        "other",
        "giraffe"
    ],
    "displayValue": "Other value text, giraffe",
    "isNode": true,
    "data": [
        {
            "name": 0,
            "title": "Choice",
            "value": "other",
            "displayValue": "Other value text",
            "isNode": false,
            "isOther": true
        },
        {
            "name": 1,
            "title": "Choice",
            "value": "giraffe",
            "displayValue": "giraffe",
            "isNode": false
        }
    ]
}

Question JSON:

      {
        type: "checkbox",
        name: "q1",
        hasComment: true,
        choices: [ "lion", "giraffe", "panda", "camel" ]
      }

Plain data with comment entered and giraffe selected:

{
    "name": "q1",
    "title": "q1",
    "value": [
        "giraffe"
    ],
    "displayValue": "giraffe",
    "isNode": true,
    "data": [
        {
            "name": 0,
            "isComment": true,
            "title": "Comment",
            "value": "-Comment",
            "displayValue": "Comment text",
            "isNode": false
        },
        {
            "name": 0,
            "title": "Choice",
            "value": "giraffe",
            "displayValue": "giraffe",
            "isNode": false
        }
    ]
}

Question JSON:

      {
        type: "radiogroup",
        name: "q1",
        hasOther: true,
        choices: [ "lion", "giraffe", "panda", "camel" ]
      }

Plain data with other selected:

{
    "name": "q1",
    "title": "q1",
    "value": [
        "other"
    ],
    "displayValue": "Other value text",
    "isNode": true,
    "data": [
        {
            "name": 0,
            "title": "Choice",
            "value": "other",
            "displayValue": "Other value text",
            "isNode": false,
            "isOther": true
        }
    ]
}

Question JSON:

      {
        type: "radiogroup",
        name: "q1",
        hasComment: true,
        choices: [ "lion", "giraffe", "panda", "camel" ]
      }

Plain data with giraffe selected and comment entered:

{
    "name": "q1",
    "title": "q1",
    "value": [
        "giraffe"
    ],
    "displayValue": "giraffe",
    "isNode": true,
    "data": [
        {
            "name": 0,
            "isComment": true,
            "title": "Comment",
            "value": "-Comment",
            "displayValue": "Comment text",
            "isNode": false
        },
        {
            "name": 0,
            "title": "Choice",
            "value": "giraffe",
            "displayValue": "giraffe",
            "isNode": false
        }
    ]
}
Product
survey-library
Type
Enhancement
Description
Introduce the "image" question type

We need to have an ability to add static images of different size to surveys. We need to implement an image question that allows to show given image, like below: image

It should support the following attributes:

  • image link
  • image width
  • image height
Product
survey-creator
Type
Enhancement
Description
Introduce the allowRemoveAllItems option for items editor

We need the option to hide this button: image

Product
survey-creator
Type
Enhancement
Description
Introduce onCanDeleteItem event
  /**
   * The event is called before rendering a delete button in the Property Grid or in Question Editor.
   * <br/> sender the survey creator object that fires the event
   * <br/> options.obj the survey Question
   * <br/> options.item the object property (Survey.JsonObjectProperty object). It has name, className, type, visible, readOnly and other properties
   * <br/> options.canDelete a boolean value. It is true by default. Set it false to remove delete button from the Property Grid or in Question Editor
   */
  public onCanDeleteItem: Survey.Event<
    (sender: SurveyCreator, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyCreator, options: any) => any, any>();
Product
survey-creator
Type
Enhancement
Description
Get rid of surveyjs ID in HTML elements

This is a bad practice to address HTML elements in the re-usable library via IDs. This can cause issues of different kind - from accessibility to bugs.

See the https://surveyjs.answerdesk.io/ticket/details/t3645/accessibility-issue-for-duplicate-id thread for more details.

Product
survey-creator
Type
Enhancement
Description
Introduce the onNotify event

This event can be used to override the end-user notifications: instead of the default alert() function the option.message can be show via custom notification library

  /**
   * The event is called in case of UI notifications. By default all notifications are done via built-in alert () function.
   * In case of any subscriptions to this event all notifications will be redirected into the event handler.
   * <br/> options.message is a message to show.
   */
  public onNotify: Survey.Event<
    (sender: SurveyCreator, options: any) => any,
    any
  > = new Survey.Event<(sender: SurveyCreator, options: any) => any, any>();

Version: v1.5.16, released at Thursday, March 19, 2020, Total Issue Count: 6

Product Type Description
survey-library Bug react version: Comment Question raise onValueChanged on typing a letter

When survey.textUpdateMode equals to "onBlue", default value, the comment question in react raise survey.onValueChanged event on typing a letter. It behaves always as survey.textUpdateMode equals to "onTyping".

Comment question should raise survey.onValueChanged event on loosing its focus when survey.textUpdateMode equals to "onBlue".

survey-library Enhancement Introduce survey.onAfterRenderQuestionInput event

Right now to set a event to a DOM element requires to handle several events and write a different code, in case if you want to change the rendering, for example, for text input in Text Question, Multiple Text Question and in matrices (dropdown and dynamic). By introducing survey.onAfterRenderQuestionInput will allow to update DOM element for questions that uses as stanalone questions (text, dropdown and so on) and in composite questions: multiple text and matrices. Here is the example of suspending to type 'e' letter for number input.

survey.onAfterRenderQuestionInput.add(function(sender, options) {
  if (options.question.getType() === "text") {
    if (options.question.inputType === "number") {
      options.htmlElement.addEventListener("keypress", function(evt) {
        if (
          (evt.which != 8 &&
            evt.which != 0 &&
            evt.which != 46 &&
            evt.which < 48) ||
          evt.which > 57
        ) {
          evt.preventDefault();
        }
      });
    }
  }
});

Here is the survey JSON. It will apply for all input elements in this survey.

var json = {
  elements: [
    {
      type: "text",
      name: "q1",
      inputType: "number"
    },
    {
      type: "multipletext",
      name: "q2",
      items: [
        { name: "item1", inputType: "number" },
        { name: "item2", inputType: "number" }
      ]
    },
    {
      type: "matrixdynamic",
      name: "q3",
      rowCount: 2,
      columns: [
        {
          name: "col1",
          cellType: "text",
          inputType: "number"
        }
      ]
    }
  ]
};
survey-library Bug Cannot change Boolean value after first click

I'm reporting a bug

What is the current behavior?

At the default value, Boolean does not update to Yes unless I double click on it. This occurs in IE and Edge only. It works fine in Chrome and Firefox.

What is the expected behavior?

The switch should change to Yes after a click.

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

Tested page URL: https://surveyjs.io/Examples/Library/?id=questiontype-boolean&platform=Reactjs&theme=default#content-result

Specify your

  • browser: IE, Edge
  • browser version: IE 11.719.18362.0, Edge 44.18362.449.0
  • surveyjs platform: react
  • surveyjs version: 1.1.31
survey-creator Bug Drag&drop issue with a queston inside a panel if a panel is the only element on the page

Can't move a question from panel to empty space under panel if panel is the only element on-page. MicrosoftTeams-image - Copy

survey-creator Bug Undo/redo doesn't work for the column cell type in dropdown matrix
survey-pdf Bug Matrix column width and textbox value padding

SurveyPDF now support rendering matrix columns with custom column width like in SurveyJS Library via this and this commits

Also removed excess space for left padding in expression question and fixed incorrect top padding for value in textbox-like questions image image

Version: v1.5.16, released at Thursday, March 19, 2020, Total Issue Count: 6

When survey.textUpdateMode equals to "onBlue", default value, the comment question in react raise survey.onValueChanged event on typing a letter. It behaves always as survey.textUpdateMode equals to "onTyping".

Comment question should raise survey.onValueChanged event on loosing its focus when survey.textUpdateMode equals to "onBlue".

Product
survey-library
Type
Enhancement
Description
Introduce survey.onAfterRenderQuestionInput event

Right now to set a event to a DOM element requires to handle several events and write a different code, in case if you want to change the rendering, for example, for text input in Text Question, Multiple Text Question and in matrices (dropdown and dynamic). By introducing survey.onAfterRenderQuestionInput will allow to update DOM element for questions that uses as stanalone questions (text, dropdown and so on) and in composite questions: multiple text and matrices. Here is the example of suspending to type 'e' letter for number input.

survey.onAfterRenderQuestionInput.add(function(sender, options) {
  if (options.question.getType() === "text") {
    if (options.question.inputType === "number") {
      options.htmlElement.addEventListener("keypress", function(evt) {
        if (
          (evt.which != 8 &&
            evt.which != 0 &&
            evt.which != 46 &&
            evt.which < 48) ||
          evt.which > 57
        ) {
          evt.preventDefault();
        }
      });
    }
  }
});

Here is the survey JSON. It will apply for all input elements in this survey.

var json = {
  elements: [
    {
      type: "text",
      name: "q1",
      inputType: "number"
    },
    {
      type: "multipletext",
      name: "q2",
      items: [
        { name: "item1", inputType: "number" },
        { name: "item2", inputType: "number" }
      ]
    },
    {
      type: "matrixdynamic",
      name: "q3",
      rowCount: 2,
      columns: [
        {
          name: "col1",
          cellType: "text",
          inputType: "number"
        }
      ]
    }
  ]
};
Product
survey-library
Type
Bug
Description
Cannot change Boolean value after first click

I'm reporting a bug

What is the current behavior?

At the default value, Boolean does not update to Yes unless I double click on it. This occurs in IE and Edge only. It works fine in Chrome and Firefox.

What is the expected behavior?

The switch should change to Yes after a click.

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

Tested page URL: https://surveyjs.io/Examples/Library/?id=questiontype-boolean&platform=Reactjs&theme=default#content-result

Specify your

  • browser: IE, Edge
  • browser version: IE 11.719.18362.0, Edge 44.18362.449.0
  • surveyjs platform: react
  • surveyjs version: 1.1.31

Can't move a question from panel to empty space under panel if panel is the only element on-page. MicrosoftTeams-image - Copy

Product
survey-creator
Type
Bug
Description
Undo/redo doesn't work for the column cell type in dropdown matrix
Product
survey-pdf
Type
Bug
Description
Matrix column width and textbox value padding

SurveyPDF now support rendering matrix columns with custom column width like in SurveyJS Library via this and this commits

Also removed excess space for left padding in expression question and fixed incorrect top padding for value in textbox-like questions image image

Version: v1.5.14, released at Thursday, March 12, 2020, Total Issue Count: 6

Product Type Description
survey-library Enhancement Add survey.onLoadedSurveyFromService event
  /**
   * The event is fired after survey is loaded from api.surveyjs.io service.
   * You can use this event to perform manipulation with the survey model after it was loaded from the web service.
   * <br/> `sender` - the survey object that fires the event.
   * @see surveyId
   * @see loadSurveyFromService
   */
  public onLoadedSurveyFromService: Event<
    (sender: SurveyModel, options: any) => any,
    any
  > = new Event<(sender: SurveyModel, options: any) => any, any>();

Example of using:

survey.onLoadedSurveyFromService.add(function(sender, options){
 //It is save now to perform some changes to the model
  survey.data = myData;
});
survey-library Bug Impossible to customize modern theme
survey-creator Enhancement Introduce validation for the inplace title adorner

If you set

Survey.Serializer.findProperty("page", "title").isRequired = true;

property grid shows the error on the empty text but adorner allows to set an empty text.

The behavior should be consistent.

survey-creator Bug Show remove button for one condition in expression property editor

If the expression has only one condition then it is hard to clear the expression. We have to show the remove button even if there is only one condition in the expression.

survey-creator Enhancement Generate table header text automatically based on property name

The following code will add two properties into itemvalue and they will appear in the table for editing choices:

Survey.Serializer.addProperty("itemvalue", { name: "myImageLink" });
Survey.Serializer.addProperty("itemvalue", { name: "tag:number" });

It will be nice to have the column header text as: "My Image Link" and "Tag", without setting the localization text.

survey-creator Bug Condition Property Editor could not create visual builder for array operand

If visibleIf property has the following value: visibleIf: "{question1} = ['item1', 'item3']", then Condition Property Editor fails to show it in visual builder and allow to edit the expression in text editor. It is not correct, we have to show checkbox with preset values.

Version: v1.5.14, released at Thursday, March 12, 2020, Total Issue Count: 6

Product
survey-library
Type
Enhancement
Description
Add survey.onLoadedSurveyFromService event
  /**
   * The event is fired after survey is loaded from api.surveyjs.io service.
   * You can use this event to perform manipulation with the survey model after it was loaded from the web service.
   * <br/> `sender` - the survey object that fires the event.
   * @see surveyId
   * @see loadSurveyFromService
   */
  public onLoadedSurveyFromService: Event<
    (sender: SurveyModel, options: any) => any,
    any
  > = new Event<(sender: SurveyModel, options: any) => any, any>();

Example of using:

survey.onLoadedSurveyFromService.add(function(sender, options){
 //It is save now to perform some changes to the model
  survey.data = myData;
});
Product
survey-library
Type
Bug
Description
Impossible to customize modern theme
Product
survey-creator
Type
Enhancement
Description
Introduce validation for the inplace title adorner

If you set

Survey.Serializer.findProperty("page", "title").isRequired = true;

property grid shows the error on the empty text but adorner allows to set an empty text.

The behavior should be consistent.

Product
survey-creator
Type
Bug
Description
Show remove button for one condition in expression property editor

If the expression has only one condition then it is hard to clear the expression. We have to show the remove button even if there is only one condition in the expression.

Product
survey-creator
Type
Enhancement
Description
Generate table header text automatically based on property name

The following code will add two properties into itemvalue and they will appear in the table for editing choices:

Survey.Serializer.addProperty("itemvalue", { name: "myImageLink" });
Survey.Serializer.addProperty("itemvalue", { name: "tag:number" });

It will be nice to have the column header text as: "My Image Link" and "Tag", without setting the localization text.

If visibleIf property has the following value: visibleIf: "{question1} = ['item1', 'item3']", then Condition Property Editor fails to show it in visual builder and allow to edit the expression in text editor. It is not correct, we have to show checkbox with preset values.

Version: v1.5.13, released at Thursday, March 5, 2020, Total Issue Count: 14

Product Type Description
survey-library Bug Compare strings without converting to number, "77" not equals to "077"

I have a problem with text field updating. I found this issue while tesing zip code field.

Reporting a bug

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

To reproduce bug need to enter numeric string with leading zeros f.e. "0077" and store survey data (go to next page).

Then if we return to previous page and change input value to "77" or "077" and try to update survey result no changes will be stored.

What is the current behavior?

If we return we'll see "0077" in this input.

What is the expected behavior?

Value must be changed

Possible reason

I think the problem is in unstrict comparing in change detection. "0077" == 77 but "0077" !== 77. If number from string value changing everything works as expected.

Please check it.

Best regards, Boris

Specify your

  • browser: Chrome
  • browser version: Version 80.0.3987.106 (Official Build) (64-bit)
  • surveyjs platform (angular or react or jquery or knockout or vue): React
  • surveyjs version: 1.5.9
survey-library Bug react survey does not get populated with preloaded data in dropdown question with restful options

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

bug

What is the current behavior?

survey does not get populated with preloaded data in dropdown question with restful options. It seems that the last working version was 1.5.3

What is the expected behavior?

work as it used to till 1.5.3

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

https://plnkr.co/edit/TvZ5VtJh6nYIo7yaNoOf?p=preview

survey-library Bug columnsVisibleIf doesn't work in matrix question in knockout/jQuery

columns visibility is not changed in knockout version. There is an issue with binding.

survey-library Bug Non unique id warnings in imagepicker
survey-library Bug Automatic navigation to next page - other option in dropdown shows error

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

Bug

What is the current behavior?

ezgif-5-210d12c2c814

What is the expected behavior?

SurveyJS should know that selecting other means we're not done yet; now the user is greeted with a big error that is very unexpected.

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

Enable automatically go to next page behavior create a question that has an other option.

Specify your

  • surveyjs platform (angular or react or jquery or knockout or vue): knockout
  • surveyjs version: *.12
survey-library Enhancement Image Picker with multiSelect kills performance

Image Picker with multiSelect kills performance especially in Survey Creator.

survey-creator Enhancement Include localizable custom property, added into itemvalue object, into localization tab

Currently, if you add a localizable custom property into itemvalue class, you would not see it in localization tab:

Survey.Serializer.addProperty("itemvalue", {
  name: "description",
  isLocalizable: true
});

It should be in localization tab, after itemvalue text property.

survey-creator Enhancement Clear error in property editor on updating the property value outside the property editor

End-user can set incorrect value into property editor and as result, he will see the error and the entered value will not set into the object property value. End-user can correct it or in some case a developer can correct the value from the code. In case when a developer correct a value from the code, we have to clean the error message, since it is no longer makes sense to show error, because the value is already changed in the object.

survey-creator Bug minValue property attribute works incorrectly for 0 value

The library, treats minValue equals to 0 as empty. The editor for the following property definition doesn't work correctly.

Survey.Serializer.addProperty('question', {
  name: 'decimalPlaces:number',
  default: 0,
  minValue: 0,
  maxValue: 5,
  category: 'validation',
  visibleIndex: 0,
});

End-user can set -5 into decimalPlaces property, which is incorrect.

survey-creator Bug Dynamic properties sometimes duplicate original ones

See https://next.plnkr.co/edit/8Mq83uCgdZbRFrSM plunker for more details:

  • append matrix dynamic
  • change column type to signaturepad
  • press edit

Got: image

survey-creator Bug Matrix dropdown doesn't reflect cell type changes on design surface

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

A bug

What is the current behavior?

Cell type changes are not reflected in design surface immediately on change in property grid

What is the expected behavior?

Cell type changes should be reflected in design surface immediately on change in property grid

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

  • drop matrix dropdown question
  • open property grid
  • open columns group
  • change cell type from the Default to the radiogroup
  • column still rendered as default dropdown

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

Tested page URL: https://surveyjs.io/Examples/Survey-Creator?id=editor-custom-theme&theme=bootstrap

survey-creator Enhancement Do not create Condition UI builder while it is collapsed

We are creating UI for building condition expression even if it is hidden. We have to build it only when it is showing and rebuild it on hiding/showing.

survey-creator Bug Checkbox as selected question doesn't render correctly in condition editor for bootstrap

When choosing checkbox or radiogroup as selected question in condition editor, it shows all items in one line with horizontal scrollbar for bootstrap theme.

survey-analytics Enhancement Introduce the allowDynamicLayout option to disable auto layout for summary elements

We need an option to disable built-in layout engine. It should be possible via the allowDynamicLayout option

var visPanel = new SurveyAnalytics.VisualizationPanel(
  document.getElementById("summaryContainer"),
  survey.getAllQuestions(),
  normalizedData,
  { allowDynamicLayout: false }
);

See the https://surveyjs.answerdesk.io/ticket/details/t3545/draggable-visualizers-columns thread for more details

Version: v1.5.13, released at Thursday, March 5, 2020, Total Issue Count: 14

I have a problem with text field updating. I found this issue while tesing zip code field.

Reporting a bug

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

To reproduce bug need to enter numeric string with leading zeros f.e. "0077" and store survey data (go to next page).

Then if we return to previous page and change input value to "77" or "077" and try to update survey result no changes will be stored.

What is the current behavior?

If we return we'll see "0077" in this input.

What is the expected behavior?

Value must be changed

Possible reason

I think the problem is in unstrict comparing in change detection. "0077" == 77 but "0077" !== 77. If number from string value changing everything works as expected.

Please check it.

Best regards, Boris

Specify your

  • browser: Chrome
  • browser version: Version 80.0.3987.106 (Official Build) (64-bit)
  • surveyjs platform (angular or react or jquery or knockout or vue): React
  • surveyjs version: 1.5.9

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

bug

What is the current behavior?

survey does not get populated with preloaded data in dropdown question with restful options. It seems that the last working version was 1.5.3

What is the expected behavior?

work as it used to till 1.5.3

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

https://plnkr.co/edit/TvZ5VtJh6nYIo7yaNoOf?p=preview

Product
survey-library
Type
Bug
Description
columnsVisibleIf doesn't work in matrix question in knockout/jQuery

columns visibility is not changed in knockout version. There is an issue with binding.

Product
survey-library
Type
Bug