Buy Licenses Contact Support Login/Register
v 1.7.18

Version: v1.7.19, estimated release date is Wednesday, July 8, 2020, Total Issue Count: 1

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

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

Version: v1.7.19, estimated release date is Wednesday, July 8, 2020, Total Issue Count: 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This bug requries functional (E2E) test.

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

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

Survey.settings.confirmActionFunc = function (message) {
   //Call your own function and return true to confirm the action or false otherwise
   return confirm("Test: " + message);
};
survey-creator Bug Undo via ctrl+z works when focus inside text input
  1. Go to https://surveyjs.io/create-survey
  2. Add any two questions
  3. Go to properties of first question
  4. Type some title without blur focus
  5. Press ctrl+z
  6. ???
  7. Missing not only last title symbol but second question too

Possible solution: disable possibility to undo survey when focus inside text input

survey-creator Bug Survey and page title inplace editors can't be used via keyboard if title is entered

See the https://surveyjs.answerdesk.io/ticket/details/t4564/not-able-to-edit-title-and-description-of-survey thread for more details:

After editing title or description of survey for first time, one is not able to move focus to title and description by pressing tab key so that one is not able to edit title/description again by keyboard tab flow.

survey-creator Bug qestion validators property editor doesn't load previous created values

The following JSON will bring error on editing validators in question "q1".

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "q1",
     "validators": [
      {
       "type": "email"
      }
     ]
    }
   ]
  }
 ]
}
survey-creator Bug otherText property doesn't show in matrix colum when hasOther is set

The issue was created in SurveyJS support desk.

survey-analytics Enhancement Add french localization

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

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

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

This bug requries functional (E2E) test.

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

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

Survey.settings.confirmActionFunc = function (message) {
   //Call your own function and return true to confirm the action or false otherwise
   return confirm("Test: " + message);
};
Product
survey-creator
Type
Bug
Description
Undo via ctrl+z works when focus inside text input
  1. Go to https://surveyjs.io/create-survey
  2. Add any two questions
  3. Go to properties of first question
  4. Type some title without blur focus
  5. Press ctrl+z
  6. ???
  7. Missing not only last title symbol but second question too

Possible solution: disable possibility to undo survey when focus inside text input

See the https://surveyjs.answerdesk.io/ticket/details/t4564/not-able-to-edit-title-and-description-of-survey thread for more details:

After editing title or description of survey for first time, one is not able to move focus to title and description by pressing tab key so that one is not able to edit title/description again by keyboard tab flow.

The following JSON will bring error on editing validators in question "q1".

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "q1",
     "validators": [
      {
       "type": "email"
      }
     ]
    }
   ]
  }
 ]
}
Product
survey-creator
Type
Bug
Description
otherText property doesn't show in matrix colum when hasOther is set

The issue was created in SurveyJS support desk.

Product
survey-analytics
Type
Enhancement
Description
Add french localization

Version: v1.7.16, released at Tuesday, June 30, 2020, Total Issue Count: 14

Product Type Description
survey-library Bug page.visibleIndex is not updated if visiblity is changed based on elements inside the page

If the page becomes visible/invisible based on a question/questions inside it, then page.visibleIndex becomes incorrect. Page is invisible, regardless page.visibile and page.visibleIf properties, if all elements inside this page are invisible. It leads to an issue when isNext/isPrev property in survey.onCurrentPageChanging/survey.onCurrentPageChanged events are incorrect. Here is the related ticket on SurveyJS support desk.

survey-library Bug Survey-knockout: the "survey" component isn't rendered
survey-library Bug Multiple Text question with several requried items doesn't work correctly when checkErrorsMode is "onValueChanged"

The following JSON doesn't work as expected. It shows error after entering the first item.

{
    checkErrorsMode: "onValueChanged",
    questions: [
        {
            type: "multipletext",
            name: "q1",
            items: [
                {
                    name: "item1",
                    isRequired: true
                }, {
                    name: "item2",
                    isRequired: true
                }, {
                    name: "item3",
                    isRequired: true
                }
            ]
        }
    ]
}
survey-library Bug Matrix dynamic/dropdown with several requried columns doesn't work correctly when checkErrorsMode is "onValueChanged"

The following JSON will show several errors on changing one cell in the matrix.

{
 "checkErrorsMode": "onValueChanged",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdynamic",
     "name": "question1",
     "columns": [
      {
       "name": "Column 1",
       "isRequired": true
      },
      {
       "name": "Column 2",
       "isRequired": true
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ]
    }
   ]
  }
 ]
}
survey-library Enhancement Persian localization update version 1.7.15
import { surveyLocalization } from "../surveyStrings";

export var persianSurveyStrings = {
  pagePrevText: "قبلی",
  pageNextText: "بعدی",
  completeText: "تکمیل",
  previewText: "پیش نمایش",
  editText: "ویرایش",
  startSurveyText: "شروع",
  otherItemText: "دیگر(توضیح)",
  noneItemText: "هیچ",
  selectAllItemText: "انتخاب همه",
  progressText: "صفحه {0} از {1}",
  panelDynamicProgressText: "مورد {0} از {1}",
  questionsProgressText: "تعداد پاسخ {0}/{1} سوال",
  emptySurvey: "صفحه ای یا گزینه ای برای این پرسشنامه موجود نیست.",
  completingSurvey: "از شما بابت تکمیل این پرسشنامه متشکریم",
  completingSurveyBefore:
    "به نظر می رسد هم هم اکنون پرسشنامه را تکمیل کرده اید.",
  loadingSurvey: "درحال ایجاد پرسشنامه",
  optionsCaption: "انتخاب کنید...",
  value: "مقدار",
  requiredError: "لطفا به سوال پاسخ دهید",
  requiredInAllRowsError: "لطفا به تمام سطر های سوالات پاسخ دهید",
  requiredInAllRowsError: "لطفا سوالات تمام سطرها را پاسخ دهید.",
  numericError: "مقدار باید عددی باشد",
  textMinLength: "لطفا حداقل  {0} حرف وارد کنید",
  textMaxLength: "لطفا کمتر از  {0} حرف وارد کنید.",
  textMinMaxLength: "لطفا بیشتر از  {0} حرف و کمتر از {1} حرف وارد کنید.",
  minRowCountError: "لطفا حداقل {0} سطر وارد کنید.",
  minSelectError: "حداقل {0} انتخاب کنید.",
  maxSelectError: "لطفا بیشتر از  {0} انتخاب کنید.",
  numericMinMax:
   "'{0}' باید بین {1} و {2} باشد",
  numericMin: "'{0}' بزرگتر مساوی {1} باشد",
  numericMax: "'{0}' باید کوچکتر یا مساوی {1} باشد",
  invalidEmail: "لطفا ایمیل صحیح درج کنید",
  invalidExpression: "عبارت: {0} پاسخ باید 'true' باشد.",
  urlRequestError: "درخواست با خطا روبرو شد: '{0}'. {1}",
  urlGetChoicesError:
   "درخواست مسیری خالی بازگشت داده یا مسیر درست تنظیم نشده",
  exceedMaxSize: "بیشترین حجم مجاز فایل: {0}",
  otherRequiredError: "مقدار 'دیگر' را وارد کنید",
  uploadingFile:
   "فایل در حال آیلود است. لطفا صبر کنید.",
  loadingFile: "بارگیری...",
  chooseFile: "انتخاب فایل(ها)...",
  noFileChosen: "هیچ فایلی انتخاب نشده",
  confirmDelete: "آیا مایل به حذف این ردیف هستید؟",
  keyDuplicationError: "این مقدار باید غیر تکراری باشد",
  addColumn: "ستون جدید",
  addRow: "سطر جدید",
  removeRow: "حذف",
  addPanel: "جدید",
  removePanel: "حذف",
  choices_Item: "آیتم",
  matrix_column: "ستون",
  matrix_row: "سطر",
  savingData: "نتایج در حال ذخیره سازی در سرور است",
  savingDataError: "خطایی در ذخیره سازی نتایج رخ داده است",
  savingDataSuccess: "نتایج با موفقیت ذخیره شد",
  saveAgainButton: "مجدد تلاش کنید"
  timerMin: "دقیقه",
  timerSec: "ثانیه",
  timerSpentAll: "شما مدت {0} در این صفحه و مدت {1} را در مجموع سپری کرده اید.",
  timerSpentPage: "شما مدت {0} را در این صفحه سپری کرده اید.",
  timerSpentSurvey: "شما مدت {0} را در مجموع سپری کرده اید.",
  timerLimitAll:
    "شما مدت {0} از {1} در این صفحه و مدت {2} از {3} را در مجموع سپری کرده اید.",
  timerLimitPage: "شما مدت {0} از {1} را در این صفحه سپری کرده اید.",
  timerLimitSurvey: "شما مدت {0} از {1} را در مجموع سپری کرده اید.",
  cleanCaption: "پاکسازی",
  clearCaption: "خالی کردن",
  chooseFileCaption: "انتخاب فایل",
  removeFileCaption: "حذف این فایل",
  booleanCheckedLabel: "بله",
  booleanUncheckedLabel: "خیر",
  confirmRemoveFile: "آیا میخواهید این فایل را پاک کنید: {0}?",
  confirmRemoveAllFiles: "آیا میخواهید تمام فایل ها را پاک کنید?",
  questionTitlePatternText: "عنوان سوال",
};
surveyLocalization.locales["fa"] = persianSurveyStrings;
surveyLocalization.localeNames["fa"] = "فارْسِى";

survey-library Bug Wrong layout in matrix dropdown/dynamic if dropdown column hasOther turn on in knockout

Please try the following JSON:

{
"elements": [
    {
     "type": "matrixdynamic",
     "name": "question5",
     "columns": [
      {
       "name": "Column 1",
       "cellType": "dropdown",
       "hasOther": true
      },
      {
       "name": "Column 2"
      },
      {
       "name": "Column 3"
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ]
    }
   ]
}

You will see that cell questions in the first column are rendering not in the line with other questions in the row.

survey-creator Bug Bug in Custom Property Editor sample online

The ckeditor seems to be rendering twice for each property that is being replaced in the online sample code. (Title, Description Html) https://surveyjs.io/Examples/Survey-Creator/?id=ckeditorpropertyeditor&theme=bootstrap

I didn't initially notice it, because I thought it was supposed to be the same field twice, but saw it in my code (based on the sample) and they are indeed duplicates.

Seems like it could be a knockout binding issue, but I don't have enough expertise in knockout to trace it down

Great job on Survey.js BTW. I am planning on buying a license next week. Marc

survey-creator Enhancement Hide the "questionStartIndex" property of a survey if "showQuestionNumbers" is set to "off"
survey-creator Enhancement Add Survey Pages property Editor

Some developers remove pages tabs from the Creator and use Page Selector dropdown only. In this case, end users could not change the pages order. We need Pages Property Editor to allow them to do it.

survey-creator Bug onPropertyAfterRender event doesn't work

using this event throw a error in the console

creator.onPropertyAfterRender.add( ()=>{} )
survey-creator Enhancement [Accessibility Issue] [Survey Designer][Property Pane]: remove option from choices in property pane doesn't read it as remove button
survey-creator Enhancement Missing label for the object selector dropdown in properties panel
survey-analytics Enhancement How to hide 'hide button' and tool bar line all?

Thanks. 1.7.7. works perfectly. And one more question.

How to hide 'hide button' and tool bar line all?

Screen Shot 2020-05-20 at 4 11 36 PM

Originally posted by @kryptojet in https://github.com/surveyjs/survey-analytics/issues/28#issuecomment-631285583

survey-analytics Enhancement Upgrade Webpack to version 4.X

Version: v1.7.16, released at Tuesday, June 30, 2020, Total Issue Count: 14

If the page becomes visible/invisible based on a question/questions inside it, then page.visibleIndex becomes incorrect. Page is invisible, regardless page.visibile and page.visibleIf properties, if all elements inside this page are invisible. It leads to an issue when isNext/isPrev property in survey.onCurrentPageChanging/survey.onCurrentPageChanged events are incorrect. Here is the related ticket on SurveyJS support desk.

Product
survey-library
Type
Bug
Description
Survey-knockout: the "survey" component isn't rendered

The following JSON doesn't work as expected. It shows error after entering the first item.

{
    checkErrorsMode: "onValueChanged",
    questions: [
        {
            type: "multipletext",
            name: "q1",
            items: [
                {
                    name: "item1",
                    isRequired: true
                }, {
                    name: "item2",
                    isRequired: true
                }, {
                    name: "item3",
                    isRequired: true
                }
            ]
        }
    ]
}

The following JSON will show several errors on changing one cell in the matrix.

{
 "checkErrorsMode": "onValueChanged",
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "matrixdynamic",
     "name": "question1",
     "columns": [
      {
       "name": "Column 1",
       "isRequired": true
      },
      {
       "name": "Column 2",
       "isRequired": true
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ]
    }
   ]
  }
 ]
}
Product
survey-library
Type
Enhancement
Description
Persian localization update version 1.7.15
import { surveyLocalization } from "../surveyStrings";

export var persianSurveyStrings = {
  pagePrevText: "قبلی",
  pageNextText: "بعدی",
  completeText: "تکمیل",
  previewText: "پیش نمایش",
  editText: "ویرایش",
  startSurveyText: "شروع",
  otherItemText: "دیگر(توضیح)",
  noneItemText: "هیچ",
  selectAllItemText: "انتخاب همه",
  progressText: "صفحه {0} از {1}",
  panelDynamicProgressText: "مورد {0} از {1}",
  questionsProgressText: "تعداد پاسخ {0}/{1} سوال",
  emptySurvey: "صفحه ای یا گزینه ای برای این پرسشنامه موجود نیست.",
  completingSurvey: "از شما بابت تکمیل این پرسشنامه متشکریم",
  completingSurveyBefore:
    "به نظر می رسد هم هم اکنون پرسشنامه را تکمیل کرده اید.",
  loadingSurvey: "درحال ایجاد پرسشنامه",
  optionsCaption: "انتخاب کنید...",
  value: "مقدار",
  requiredError: "لطفا به سوال پاسخ دهید",
  requiredInAllRowsError: "لطفا به تمام سطر های سوالات پاسخ دهید",
  requiredInAllRowsError: "لطفا سوالات تمام سطرها را پاسخ دهید.",
  numericError: "مقدار باید عددی باشد",
  textMinLength: "لطفا حداقل  {0} حرف وارد کنید",
  textMaxLength: "لطفا کمتر از  {0} حرف وارد کنید.",
  textMinMaxLength: "لطفا بیشتر از  {0} حرف و کمتر از {1} حرف وارد کنید.",
  minRowCountError: "لطفا حداقل {0} سطر وارد کنید.",
  minSelectError: "حداقل {0} انتخاب کنید.",
  maxSelectError: "لطفا بیشتر از  {0} انتخاب کنید.",
  numericMinMax:
   "'{0}' باید بین {1} و {2} باشد",
  numericMin: "'{0}' بزرگتر مساوی {1} باشد",
  numericMax: "'{0}' باید کوچکتر یا مساوی {1} باشد",
  invalidEmail: "لطفا ایمیل صحیح درج کنید",
  invalidExpression: "عبارت: {0} پاسخ باید 'true' باشد.",
  urlRequestError: "درخواست با خطا روبرو شد: '{0}'. {1}",
  urlGetChoicesError:
   "درخواست مسیری خالی بازگشت داده یا مسیر درست تنظیم نشده",
  exceedMaxSize: "بیشترین حجم مجاز فایل: {0}",
  otherRequiredError: "مقدار 'دیگر' را وارد کنید",
  uploadingFile:
   "فایل در حال آیلود است. لطفا صبر کنید.",
  loadingFile: "بارگیری...",
  chooseFile: "انتخاب فایل(ها)...",
  noFileChosen: "هیچ فایلی انتخاب نشده",
  confirmDelete: "آیا مایل به حذف این ردیف هستید؟",
  keyDuplicationError: "این مقدار باید غیر تکراری باشد",
  addColumn: "ستون جدید",
  addRow: "سطر جدید",
  removeRow: "حذف",
  addPanel: "جدید",
  removePanel: "حذف",
  choices_Item: "آیتم",
  matrix_column: "ستون",
  matrix_row: "سطر",
  savingData: "نتایج در حال ذخیره سازی در سرور است",
  savingDataError: "خطایی در ذخیره سازی نتایج رخ داده است",
  savingDataSuccess: "نتایج با موفقیت ذخیره شد",
  saveAgainButton: "مجدد تلاش کنید"
  timerMin: "دقیقه",
  timerSec: "ثانیه",
  timerSpentAll: "شما مدت {0} در این صفحه و مدت {1} را در مجموع سپری کرده اید.",
  timerSpentPage: "شما مدت {0} را در این صفحه سپری کرده اید.",
  timerSpentSurvey: "شما مدت {0} را در مجموع سپری کرده اید.",
  timerLimitAll:
    "شما مدت {0} از {1} در این صفحه و مدت {2} از {3} را در مجموع سپری کرده اید.",
  timerLimitPage: "شما مدت {0} از {1} را در این صفحه سپری کرده اید.",
  timerLimitSurvey: "شما مدت {0} از {1} را در مجموع سپری کرده اید.",
  cleanCaption: "پاکسازی",
  clearCaption: "خالی کردن",
  chooseFileCaption: "انتخاب فایل",
  removeFileCaption: "حذف این فایل",
  booleanCheckedLabel: "بله",
  booleanUncheckedLabel: "خیر",
  confirmRemoveFile: "آیا میخواهید این فایل را پاک کنید: {0}?",
  confirmRemoveAllFiles: "آیا میخواهید تمام فایل ها را پاک کنید?",
  questionTitlePatternText: "عنوان سوال",
};
surveyLocalization.locales["fa"] = persianSurveyStrings;
surveyLocalization.localeNames["fa"] = "فارْسِى";

Please try the following JSON:

{
"elements": [
    {
     "type": "matrixdynamic",
     "name": "question5",
     "columns": [
      {
       "name": "Column 1",
       "cellType": "dropdown",
       "hasOther": true
      },
      {
       "name": "Column 2"
      },
      {
       "name": "Column 3"
      }
     ],
     "choices": [
      1,
      2,
      3,
      4,
      5
     ]
    }
   ]
}

You will see that cell questions in the first column are rendering not in the line with other questions in the row.

Product
survey-creator
Type
Bug
Description
Bug in Custom Property Editor sample online

The ckeditor seems to be rendering twice for each property that is being replaced in the online sample code. (Title, Description Html) https://surveyjs.io/Examples/Survey-Creator/?id=ckeditorpropertyeditor&theme=bootstrap

I didn't initially notice it, because I thought it was supposed to be the same field twice, but saw it in my code (based on the sample) and they are indeed duplicates.

Seems like it could be a knockout binding issue, but I don't have enough expertise in knockout to trace it down

Great job on Survey.js BTW. I am planning on buying a license next week. Marc

Product
survey-creator
Type
Enhancement
Description
Add Survey Pages property Editor

Some developers remove pages tabs from the Creator and use Page Selector dropdown only. In this case, end users could not change the pages order. We need Pages Property Editor to allow them to do it.

Product
survey-creator
Type
Bug
Description
onPropertyAfterRender event doesn't work

using this event throw a error in the console

creator.onPropertyAfterRender.add( ()=>{} )
Product
survey-creator
Type
Enhancement
Description
Missing label for the object selector dropdown in properties panel
Product
survey-analytics
Type
Enhancement
Description
How to hide 'hide button' and tool bar line all?

Thanks. 1.7.7. works perfectly. And one more question.

How to hide 'hide button' and tool bar line all?

Screen Shot 2020-05-20 at 4 11 36 PM

Originally posted by @kryptojet in https://github.com/surveyjs/survey-analytics/issues/28#issuecomment-631285583

Product
survey-analytics
Type
Enhancement
Description
Upgrade Webpack to version 4.X

Version: v1.7.15, released at Friday, June 26, 2020, Total Issue Count: 2

Product Type Description
survey-creator Enhancement Hide the hideNumber property if showQuestionNumbers is set to false on parent or survey level
survey-creator Enhancement Allow to change the category for existing properties

The following code should change the property "name" category from "general" to "data" and make this property first in the "Data" tab.

var nameProperty = Survey.Serializer.findProperty("question", "name");
nameProperty.category = "data";
newProperty.visibleIndex = 0;

The code should be executed before SurveyJS Creator constructor.

Version: v1.7.15, released at Friday, June 26, 2020, Total Issue Count: 2

Product
survey-creator
Type
Enhancement
Description
Allow to change the category for existing properties

The following code should change the property "name" category from "general" to "data" and make this property first in the "Data" tab.

var nameProperty = Survey.Serializer.findProperty("question", "name");
nameProperty.category = "data";
newProperty.visibleIndex = 0;

The code should be executed before SurveyJS Creator constructor.

Version: v1.7.14, released at Thursday, June 25, 2020, Total Issue Count: 4

Version: v1.7.14, released at Thursday, June 25, 2020, Total Issue Count: 4

Product
survey-creator
Type
Enhancement
Description
Missing label for the page selection dropdown
Product
survey-creator
Type
Bug
Description
Title font size becomes small during editing via inplace editor

See the picture below:

image

Product
survey-creator
Type
Bug
Description
matrix dynamic Columns edit button not displaying

See the attached image:

image

Version: v1.7.13, released at Wednesday, June 24, 2020, Total Issue Count: 16

Product Type Description
survey-library Bug Min/ Max Function not working properly when there is zero value

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

Possible bug

What is the current behaviour?

  1. Min/ Max function, when used to compare an 'expression' type question, doesn't yield expected results. Details:
  1. The min/max function returns the param to be compared with when the 'expression' question is yet to get an initial value (owing to lack of inputs) instead of returning correct result(screenshot1)
  2. When compared with a zero, min/ max function returns the param to be compared with instead of the correct result (screenshot 2)

What is the expected behaviour?

In 1a, would expect a 'zero' or 'null' or 'undefined' to be returned In 1b, the correct result.

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

Pl, see the att code.

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

Tested page URL:

Test code

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "question1",
     "title": "Enter Number 1",
     "inputType": "number"
    },
    {
     "type": "text",
     "name": "question2",
     "title": "Enter Number 2",
     "inputType": "number"
    },
    {
     "type": "text",
     "name": "question3",
     "title": "Enter Number 3",
     "inputType": "number"
    },
    {
     "type": "expression",
     "name": "question4",
     "title": "Sum of numbers",
     "expression": "{question1}+ {question2} + {question3}",
     "commentText": "Other (describe)"
    },
    {
     "type": "expression",
     "name": "question5",
     "title": "Max function test",
     "expression": "max({question4}, 200)",
     "displayStyle": "decimal",
     "maximumFractionDigits": 0,
     "minimumFractionDigits": 0,
     "commentText": "Other (describe)"
    },
    {
     "type": "expression",
     "name": "question6",
     "title": "Min function test",
     "expression": "min({question4}, 200)",
     "displayStyle": "decimal",
     "maximumFractionDigits": 0,
     "minimumFractionDigits": 0,
     "commentText": "Other (describe)"
    }
   ]
  }
 ]
}

Specify your

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

image

image

survey-library Bug Do not serialize default values for labelFalse/labelTrue properties in boolean question

We are serializing default values for these properties.

survey-library Enhancement Accessibility: add aria-describedby to make error messages linked to fields

See the https://surveyjs.answerdesk.io/ticket/details/t4437/accessibility-add-aria-describedby-to-make-error-messages-linked-to-fields thread for more details:

Once we submit a form that has errors on them it's not possible for NVDA to read the error messages individually. Steps:

Create form with required fields on it (or any constraint) Submit without filling them (or violating the constraint) Result: screen reader reads all error messages at the same time AND only once. This is a problem because:

not all error messages are read: user don't know what went wrong error messages can not be read again: tabbing through the fields after submitting doesn't tell the user which fields have the errors By adding aria-describedby to all fields, it's possible to link the error message to the field where it comes from. This solves problem #2, error messages would be read when tabbing through the form.

survey-library Bug Accessibility: missing the aria-required attribute in the comment field
survey-library Bug choicesEnableIf property doesn't work in matrix column

The following JSON doesn’t work:

{
    elements: [
      {
        type: "matrixdynamic",
        name: "matrix",
        rowCount: 1,
        columns: [
          {
            name: "col1",
            cellType: "checkbox",
            choices: [1, 2, 3, 4],
          },
          {
            name: "col2",
            cellType: "dropdown",
            choices: [1, 2, 3, 4],
            choicesEnableIf: "{row.col1} contains {item}",
          },
        ],
      },
    ],
  }

The second column show have disabled options in dropdown if there is nothing is selected in the first column. When an end-user check a choice in the first column, the option in the dropdown in the second column should become enabled.

survey-creator Bug Modal properties window with tabs doesn't work properly

how to reproduce:

var creator = new SurveyCreator.SurveyCreator("editorElement", {
  showElementEditorAsPropertyGrid: false,
  useTabsInElementEditor: true
});

then add radiogroup element and open modal properties window

survey-creator Bug creator.survey.addNewPage() function doesn't work

The following code:

creator.survey.addNewPage("newPage");

should work similar to:

creator.addPage();
survey-creator Enhancement Use Webpack 4.X in build scripts
survey-creator Bug Some elements hasn't been rendered after applyBIndings
survey-creator Bug Survey isn't updated in logic tab if the only logic tab is visible
survey-creator Bug Page editor adds two pages if new page added via page selector dropdown

Functional test failed:

✖ surveyjseditor: drag and drop - checking page selector

AssertionError [ERR_ASSERTION]: 3 == 2

Browser: Chrome 83.0.4103.97 / Linux 0.0

  133 |  const select = Selector("svd-pages-editor .svd-page-selector");
  134 |  const option = select.find("option");
  135 |
  136 |  await t.click(select).click(option.withText("Add New Page"));
  137 |
> 138 |  assert.equal(await getPagesCount(), 2);
  139 |
  140 |  await t.click(select).click(option.withText("page1"));
  141 |
  142 |  //check 1 page is active
  143 |  const gearactivePage1 = Selector(".svd-pages ")
survey-creator Enhancement Show otherText and otherTextError properties when hasOther property is checked.

Do not show otherText and otherTextError properties if hasOther property is unchecked.

survey-creator Bug JSON editor area too small if no Ace editor loaded
survey-creator Bug Triggers in Survey logic tab UI bug
survey-creator Enhancement Hide page property editor if there is one page in the survey

There is no sense to show a page property in question/panel if there is only one page in the survey.

survey-creator Enhancement Introduce color chooser property editor

Many users ask for the color chooser property editor. We decided to implement it out-of-the-box.

A color property can be declared the following way:

Survey.Serializer.addProperty("question", "myColor:color");

Version: v1.7.13, released at Wednesday, June 24, 2020, Total Issue Count: 16

Product
survey-library
Type
Bug
Description
Min/ Max Function not working properly when there is zero value

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

Possible bug

What is the current behaviour?

  1. Min/ Max function, when used to compare an 'expression' type question, doesn't yield expected results. Details:
  1. The min/max function returns the param to be compared with when the 'expression' question is yet to get an initial value (owing to lack of inputs) instead of returning correct result(screenshot1)
  2. When compared with a zero, min/ max function returns the param to be compared with instead of the correct result (screenshot 2)

What is the expected behaviour?

In 1a, would expect a 'zero' or 'null' or 'undefined' to be returned In 1b, the correct result.

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

Pl, see the att code.

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

Tested page URL:

Test code

{
 "pages": [
  {
   "name": "page1",
   "elements": [
    {
     "type": "text",
     "name": "question1",
     "title": "Enter Number 1",
     "inputType": "number"
    },
    {
     "type": "text",
     "name": "question2",
     "title": "Enter Number 2",
     "inputType": "number"
    },
    {
     "type": "text",
     "name": "question3",
     "title": "Enter Number 3",
     "inputType": "number"
    },
    {
     "type": "expression",
     "name": "question4",
     "title": "Sum of numbers",
     "expression": "{question1}+ {question2} + {question3}",
     "commentText": "Other (describe)"
    },
    {
     "type": "expression",
     "name": "question5",
     "title": "Max function test",
     "expression": "max({question4}, 200)",
     "displayStyle": "decimal",
     "maximumFractionDigits": 0,
     "minimumFractionDigits": 0,
     "commentText": "Other (describe)"
    },
    {
     "type": "expression",
     "name": "question6",
     "title": "Min function test",
     "expression": "min({question4}, 200)",
     "displayStyle": "decimal",
     "maximumFractionDigits": 0,
     "minimumFractionDigits": 0,
     "commentText": "Other (describe)"
    }
   ]
  }
 ]
}

Specify your

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

image

image

We are serializing default values for these properties.

Product
survey-library
Type
Enhancement
Description
Accessibility: add aria-describedby to make error messages linked to fields

See the https://surveyjs.answerdesk.io/ticket/details/t4437/accessibility-add-aria-describedby-to-make-error-messages-linked-to-fields thread for more details:

Once we submit a form that has errors on them it's not possible for NVDA to read the error messages individually. Steps:

Create form with required fields on it (or any constraint) Submit without filling them (or violating the constraint) Result: screen reader reads all error messages at the same time AND only once. This is a problem because:

not all error messages are read: user don't know what went wrong error messages can not be read again: tabbing through the fields after submitting doesn't tell the user which fields have the errors By adding aria-describedby to all fields, it's possible to link the error message to the field where it comes from. This solves problem #2, error messages would be read when tabbing through the form.

Product
survey-library
Type
Bug
Description
choicesEnableIf property doesn't work in matrix column

The following JSON doesn’t work:

{
    elements: [
      {
        type: "matrixdynamic",
        name: "matrix",
        rowCount: 1,
        columns: [
          {
            name: "col1",
            cellType: "checkbox",
            choices: [1, 2, 3, 4],
          },
          {
            name: "col2",
            cellType: "dropdown",
            choices: [1, 2, 3, 4],
            choicesEnableIf: "{row.col1} contains {item}",
          },
        ],
      },
    ],
  }

The second column show have disabled options in dropdown if there is nothing is selected in the first column. When an end-user check a choice in the first column, the option in the dropdown in the second column should become enabled.

Product
survey-creator
Type
Bug
Description
Modal properties window with tabs doesn't work properly

how to reproduce:

var creator = new SurveyCreator.SurveyCreator("editorElement", {
  showElementEditorAsPropertyGrid: false,
  useTabsInElementEditor: true
});

then add radiogroup element and open modal properties window

Product
survey-creator
Type
Bug
Description
creator.survey.addNewPage() function doesn't work

The following code:

creator.survey.addNewPage("newPage");

should work similar to:

creator.addPage();
Product
survey-creator
Type
Enhancement
Description
Use Webpack 4.X in build scripts
Product
survey-creator
Type
Bug
Description
Some elements hasn't been rendered after applyBIndings
Product
survey-creator
Type
Bug
Description
Survey isn't updated in logic tab if the only logic tab is visible

Functional test failed:

✖ surveyjseditor: drag and drop - checking page selector

AssertionError [ERR_ASSERTION]: 3 == 2

Browser: Chrome 83.0.4103.97 / Linux 0.0

  133 |  const select = Selector("svd-pages-editor .svd-page-selector");
  134 |  const option = select.find("option");
  135 |
  136 |  await t.click(select).click(option.withText("Add New Page"));
  137 |
> 138 |  assert.equal(await getPagesCount(), 2);
  139 |
  140 |  await t.click(select).click(option.withText("page1"));
  141 |
  142 |  //check 1 page is active
  143 |  const gearactivePage1 = Selector(".svd-pages ")
Product
survey-creator
Type
Enhancement
Description
Show otherText and otherTextError properties when hasOther property is checked.

Do not show otherText and otherTextError properties if hasOther property is unchecked.

Product
survey-creator
Type
Bug
Description
JSON editor area too small if no Ace editor loaded
Product
survey-creator
Type
Bug
Description
Triggers in Survey logic tab UI bug
Product
survey-creator
Type
Enhancement
Description
Hide page property editor if there is one page in the survey

There is no sense to show a page property in question/panel if there is only one page in the survey.

Product
survey-creator
Type
Enhancement
Description
Introduce color chooser property editor

Many users ask for the color chooser property editor. We decided to implement it out-of-the-box.

A color property can be declared the following way:

Survey.Serializer.addProperty("question", "myColor:color");

Version: v1.7.12, released at Tuesday, June 16, 2020, Total Issue Count: 5

Product Type Description
survey-library Bug onAfterRenderQuestionInput event: urvey-react and survey-knockout giving different htmlElements
survey-library Enhancement Imporove/simplify dynamic properties support in Serializer

Right now it requires to define getDynamicProperties(): Array<string> for an object that supports dynamic properties, for example a matrix column. Matrix column has a property cellType and based on that it adds properties from "dropdown" or "checkbox" or "text" questions into a column. Time to time, we are adding a new properties into questions, but forget to add them into Survey.matrixDropdownColumnTypes variable. Most SurveyJS developers do not know about this variable and report a bug that a new property or a custom property doesn't work/serialize in a matrix column. However, we can remove getDynamicProperties() at all and do not use Survey.matrixDropdownColumnTypes variable. We can take properties directly from cellType className, already cached in Serializer instance.

survey-creator Enhancement Add missed french localization strings for Logic tab

Add missing french localization strings and fix the structure.

survey-creator Enhancement creator.addPage() should return new created page

The function should return the new created page. Right now we should to write the following code:

creator.addPage();
let page = creator.survey.pages[creator.survey.pages.length - 1];

However, it should be:

let page = creator.addPage();
survey-creator Bug Property grid => Choices (itemvalues) editor D&D fails

Here: ba4e9469c5

  • add radiogroup
  • go to choices
  • try to change choices order via D&D

Cannot read property 'focus' of undefined

Version: v1.7.12, released at Tuesday, June 16, 2020, Total Issue Count: 5

Product
survey-library
Type
Enhancement
Description
Imporove/simplify dynamic properties support in Serializer

Right now it requires to define getDynamicProperties(): Array<string> for an object that supports dynamic properties, for example a matrix column. Matrix column has a property cellType and based on that it adds properties from "dropdown" or "checkbox" or "text" questions into a column. Time to time, we are adding a new properties into questions, but forget to add them into Survey.matrixDropdownColumnTypes variable. Most SurveyJS developers do not know about this variable and report a bug that a new property or a custom property doesn't work/serialize in a matrix column. However, we can remove getDynamicProperties() at all and do not use Survey.matrixDropdownColumnTypes variable. We can take properties directly from cellType className, already cached in Serializer instance.

Product
survey-creator
Type
Enhancement
Description
Add missed french localization strings for Logic tab

Add missing french localization strings and fix the structure.

Product
survey-creator
Type
Enhancement
Description
creator.addPage() should return new created page

The function should return the new created page. Right now we should to write the following code:

creator.addPage();
let page = creator.survey.pages[creator.survey.pages.length - 1];

However, it should be:

let page = creator.addPage();
Product
survey-creator
Type
Bug
Description
Property grid => Choices (itemvalues) editor D&D fails

Here: ba4e9469c5

  • add radiogroup
  • go to choices
  • try to change choices order via D&D

Cannot read property 'focus' of undefined

Version: v1.7.11, released at Wednesday, June 10, 2020, Total Issue Count: 15

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-library Bug layout issue

setting width in pixels via json for questions and panels doesn't work properly link to reproduce https://plnkr.co/edit/5g975SVYJ7ABItiK

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 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 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 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);
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 Enhancement svd-accordion doesn't have role "tablist" attribute
survey-creator Enhancement The aria-label attribute of the property grid should be configurable
survey-creator Enhancement Missing the aria-label attribute of the element selector in the logic tab
survey-creator Enhancement The focus is shifted back to the designer tab after performing delete action on choice items in property-grid tab
survey-creator Enhancement [Accessibility Issue][Survey Creator]Focus is lost when try to delete a question from the survey designer
survey-creator Bug SelectBase has wrong ItemValue instances in markup after question converted to other type

See https://surveyjs.answerdesk.io/ticket/details/t4331/item-content-is-lost-after-changing-the-question-type-and-inserting-an-additional-item for more details.

Steps to reproduce: Add a new radougroup question Convert it to checkbox Edit item text via adorner

Result: Check modified choice item in property grid - it still the same Choices and visibleChoices are not the same

survey-creator Enhancement Set focus on the added item or on the next item (in case of removal) for choice items adorner

It's important to keep focus on the neibour or set focus on new items then working with choice items via keyboard. See the https://surveyjs.answerdesk.io/ticket/details/t4341/accessibility-issue-survey-designer-focus-is-lost-in-when-trying-to-add-or-delete thread for more details

Version: v1.7.11, released at Wednesday, June 10, 2020, Total Issue Count: 15

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

Product
survey-library
Type
Bug
Description
layout issue

setting width in pixels via json for questions and panels doesn't work properly link to reproduce https://plnkr.co/edit/5g975SVYJ7ABItiK

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
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.

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
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);

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
svd-accordion doesn't have role "tablist" attribute
Product
survey-creator
Type
Enhancement
Description
The aria-label attribute of the property grid should be configurable
Product
survey-creator
Type
Enhancement
Description
Missing the aria-label attribute of the element selector in the logic tab

See https://surveyjs.answerdesk.io/ticket/details/t4331/item-content-is-lost-after-changing-the-question-type-and-inserting-an-additional-item for more details.

Steps to reproduce: Add a new radougroup question Convert it to checkbox Edit item text via adorner

Result: Check modified choice item in property grid - it still the same Choices and visibleChoices are not the same

It's important to keep focus on the neibour or set focus on new items then working with choice items via keyboard. See the https://surveyjs.answerdesk.io/ticket/details/t4341/accessibility-issue-survey-designer-focus-is-lost-in-when-trying-to-add-or-delete thread for more details

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 coming 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 following 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 (horizontal 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 coming 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 following 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 (horizontal 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 its 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 Question. 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 original 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 Question. 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 original 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 original 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 original 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 requires 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 original 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 original issue came from SurveyJS Support desk

survey-creator Bug Page title adorner is rendered 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 requires 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 original 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 original 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 original 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 original 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 original 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 original 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 original 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 original 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 original 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 original 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 original 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 original 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?