surveyproject / surveyproject Goto Github PK
View Code? Open in Web Editor NEWSurvey Project Webapplication - development, sources & releases
Home Page: http://www.surveyproject.org
License: GNU General Public License v3.0
Survey Project Webapplication - development, sources & releases
Home Page: http://www.surveyproject.org
License: GNU General Public License v3.0
Current system does only allow basic titles for row and column headers in matrix question type. I would like to be able to add dropdown selections for the rows headers. The user will be able to select one an option in each row for the header then give a grade on the columns for the selected option.
Is it possible to add this feature the survey project?
I want to revise a survey offline. The workflow I'm considering for this is:
But at step 6, I get "Another survey with the same name exists in the folder. Please import into different folder." What folder? What name? I gave it a different title.
Expected:
viewstate corrected
fully working answertype
Administrator or person responsible for the technical installation of SP
create a default SP Admin account automatically on first login after the (technical) installation of SP based on a valid username/ password combination entered
have access to SP and start administering the SP webapplication
a newly installed version of the SP webapplication
starting/opening the webapplication for the first time in a webbrowser and on first login
a default SP admin account must be created based on the username/ password entered in the login textboxes
an already existing SP webapplication including one or more useraccounts
loging into the webapplication
no new (admin) account must be created and regular username/ password checks must be executed to give access to SP or show a warning message
a newly installed version of the SP webapplication
starting/opening the webapplication for the first time in a webbrowser and on first login with an incorrect password (not compliant with password rules)
a warning message should show and no account must be created
Additional information to be added to the GlobalStats Page (Statistics menu)
Discovered in SP v. 2.3 (andn in the SP 2.4 alpha version so far)
To replicate:
Expected situation:
Name change of DLL's/ Assemblies to SurveyProject.[name] instead of Votations.Nsurvey.[name]
Hi People
Is there anyway through css or code where I can align the Question and Answer on the same line such
Question Answer
Rather than
Question
Answer
For example this would be requried when asking for name , etc.
Thanks
Ray
I put in this code (so that I can write CSS against the controls)
My Label
after saving and reloading, it changes to this
My label
Based on several requests over the years it seems about time to come up with a proper instruction on how to setup SP using Active Directory or Windows Authentication integration. This is mainly used in intranet setups.
Code changes to SP may be needed. Changing settings on the IIS webserver are certainly part of the setup.
Main task for the SP QA & Testing project for version 2.4
It would be nice to embed XML-based answers in the XML export so that only one file had to be used to transport or archive a survey.
When I run the publish function from Visual Studio and drop everything in the database, recreate it and try to load data in a script generated by the database, I get this error. The script is set to check constraints and check for object existence. Why would there be a missing constraint?
Severity Code Description Project File Line
Error Web deployment task failed. (An error occurred during execution of the database script. The error occurred between the following lines of the script: "1504" and "1508". The verbose log might have more information about the error. The command started with the following:
"/****** Object: Index [PK_vts_tbSurvey] Script"
The constraint 'PK_vts_tbSurvey' is being referenced by table 'vts_tbSurveyAsset', foreign key constraint 'FK__vts_tbSur__Surve__1387E197'.
Could not drop constraint. See previous errors. http://go.microsoft.com/fwlink/?LinkId=178587 Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_SQL_EXECUTION_FAILURE.) SurveyWAP 0
I don't know what else I can say or provide here. Select a survey, go to Results >> Reports. Click on... everything but Graphical Reports do nothing at all. The other two options seem to work.
When using a Field - Hidden text box to collect information from the URL with ##DefaultValue## set on the answer, the value passed through the URL is lost after pausing and resuming.
Steps to reproduce:
My thoughts:
I'm pretty sure the "why" of this is that on the answers being submitted from the client, because the URL parameter is missing, the empty string overwrites the original value from before the values are submitted to the database, since the original value would not be included in the OnAnswersSubmit() function, unlike the Field - Basic answer which set the AnswerText on the client.
In our implementation of the application, we collect a small amount of information before directing the user to the survey, and then store that information passed through the URL as part of the survey.
We don't know what the query string parameters were supposed to be when resuming and therefore cannot repopulate the URL identically from the client-side. Currently, the only thing we know is the resume code.
I'm fairly certain this was not intended behavior, but I have yet been unable to pinpoint the origin of the issue. It seems that sometime between loading the VoterAnswers on resume (line 1344 of SurveyBox.cs) and the merge between VoterAnswers and currentVisitorAnswerSet on SubmitAnswersToDb() (line 1518 of SurveyBox.cs), the original value is lost and overwritten.
My current workaround ideas that I have yet to attempt to implement include
A. Create a new AnswerType to replace Field - Hidden that renders the text box on the client, and is set to display: none in the CSS so that the AnswerText is set and also passed when submitting the answers
B. Attempt to recreate the original URL parameters by querying the database on resume and redirecting the user to the appropriate URL with the parameters set.
Any thoughts or suggestions for a fix? We are losing data / receiving bad data every time a user pauses and resumes a survey.
Add a .gitignore file to the repository so the binaries don't clutter up the diffs and get copied from branch to branch all over the history of the repository. Having them in the repository drastically increases the size of the repo.
Will follow up with a PR.
With an answer of type Field-Slider, saving your progress on the survey loads the wrong value after the process is complete...
Steps to reproduce:
On a form with save progress mode set to manual
A slider with min value 1 and max value 10...
Open the survey and set the slider to 6, then click save progress
You will see the slider get set to 1 after progress has been saved.
If you click save progress a second time, after the process is complete, the slider will display 6 again
Clicking the save progress button a third time will change the slider to display 1 again.
Clicking save progress a fourth time will change the slider to 6 again
This seems to toggle back and forth indefinitely.
If you look at the HTML, you can clearly see that the input element's value is set to 6 when the slider displays 1, and the input element's value is set to 1 when the slider displays 6
Current working
Proposed working:
This would make it possible to give access to a specific usergroup only.
For unknown reasons 2 database entries were lost since SP v. 2.1: IP Filter and Token Protection. These entries must be added again to the Mssql databasescript.
Original entries in sql code SP 2.0:
SET IDENTITY_INSERT [dbo].[vts_tbWebSecurityAddIn] ON
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (1, N'PasswordProtection', 1, N'Votations.NSurvey.Security.PasswordWebSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (2, N'IPProtection', 1, N'Votations.NSurvey.Security.IPWebSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (3, N'CookieProtection', 1, N'Votations.NSurvey.Security.CookieWebSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (4, N'EmailCodeProtection', 1, N'Votations.NSurvey.Security.EmailWebSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (5, N'ASPNETSecurityContextProtection', 1, N'Votations.NSurvey.Security.ASPNetContextSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (6, N'NSurveySecurityContextProtection', 1, N'Votations.NSurvey.Security.NSurveyContextSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (7, N'EntryQuotaProtection', 1, N'Votations.NSurvey.Security.EntryQuotaSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (8, N'Token Protection', 1, N'Votations.NSurvey.Security.TokenSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
INSERT [dbo].[vts_tbWebSecurityAddIn]([WebSecurityAddInId], [Description], [BuiltIn], [TypeNameSpace], [TypeAssembly], [TypeMode]) VALUES (9, N'IP Filter', 1, N'Votations.NSurvey.Security.IPRangeSecurityAddIn', N'Votations.NSurvey.WebControls', 0)
SET IDENTITY_INSERT [dbo].[vts_tbWebSecurityAddIn] OFF
Cleanout, completion and correction of BE Project files (Votations.Nsurvey.Data)
Two changes to improve useability of the Survey list overview:
Survey Creator
be able to create a survey where its possible to "skip" (hide) a question that is on the same page as the question who's answer triggers it
use skip logic without having to create different pages to hide or skip a question
Scenario 1
a survey page containing multiple questions
adding skip logic (question level) by selecting a 'trigger' question from the Question DDL
the DDL should also contain (preceding) questions that are on the same page as the question to be 'skipped'
Scenario 2
a survey including the new skip logic feature
a respondent answers the one page survey containing multiple questions
the question to which the skip logic is added must be hidden or shown correctly based on the logic and answers given
When using token security on a survey an error will show on submitting the survey:
"The number of parameters does not match number of values for stored procedure."
The cause of the error can be found (and fixed) in:
...\Reflector\Nsurvey_SQLServerDAL\Votations.NSurvey.SQLServerDAL\SurveyToken.cs
Solution: add surveyid to arraylist:
public void UpdateToken(int surveyID, string token,int voterId)
{
ArrayList commandParameters = new ArrayList();
{
commandParameters.Add(new SqlParameter("@surveyid", surveyID).SqlValue);
commandParameters.Add(new SqlParameter("@token", token).SqlValue);
commandParameters.Add(new SqlParameter("@voterId", voterId).SqlValue);
}
object obj2 = DbConnection.db.ExecuteScalar("vts_spSurveyTokenUpdate", commandParameters.ToArray());
}
Add SSRS (Sqlserver Reportings Services) reports to SP:
SP Webapp changes:
In the current matrix type question there is a column header text for each column. That would be nice to have a column shared header for the columns to describe the columns.
The survey export from both 2.3 and 2.1 does not include (vts_Survey) FolderId and DefaultSurvey in the exported XML. Both columns are defined as "not null" so the import into 2.3 fails. Saving a new survey also fails with the same error: Cannot insert the value NULL into column 'FolderId', table 'surveyproject.dbo.vts_tbSurvey'; column does not allow nulls. INSERT fails.
Main task for Localization and Translations project
The forms sometimes do not expose action buttons and don't allow scrolling within the page. Recommend removing fixed footer and stop truncating display.
To block a person to submit the same questionnaire many times.
When they submit the questionnaire, they could click "Back" button of the browser. Then, they could submit the same questionnaire again and we see the database received the 2nd record. In addition, on the page of the questionnaire, when a user clicks the "Submit" button twice, there are two questionnaire records.
The other problem is:
We get the information from the forum.
http://www.surveyproject.org/Forums/tabid/107/forumid/6/threadid/514/scope/posts/Default.aspx
However, it is not the solution we expect.
SP version 2.3
a. Current behaviour:
The Data Export CSV file contains two fields Username/ Email that are not filled properly on exporting survey respondents data through the Results/ Data Export Menu.
The XML export option does contain the email address of the respondent.
b. Required behaviour:
Background:
I had used a script to format most of my user data and didn't look at it super close (~100 users)
I opted to use the user's email address as their username for logging in.
Two of our users shared the same email, and therefore shared the same username.
The second of these users was not created, but no error message was given, the only way I knew any had failed was that I went to double check the number of rows added in the database.
Request:
Just as a simple feature, it would be nice to see "Of X attempted user uploads, Y were successful" or even just "X of Y successful" since the context of the user's action is fairly obvious.
I understand that wanting a bunch of feedback on a bulk upload can be a little silly, but totals would probably help a lot. I managed to find the missing user pretty quickly, but I thought this might be quick to implement and could help someone else in the future
Several adjustments needed/ advised based on (ZAP) security testing:
clickjacking
HTTP header added to web.config
X-Frame-Options
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
https://blogs.msdn.microsoft.com/ieinternals/2010/03/30/combating-clickjacking-with-x-frame-options/
autocomplete off on password form field
loginbox.ascx attrib added
XXS security header
https://www.veracode.com/blog/2014/03/guidelines-for-setting-security-headers
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
http://www.insiderattack.net/2014/04/configuring-secure-iis-response-headers.html
server http header removed
global.config application_begin ..
encrypted Viewstate on survey form
When getting a list of files with the group guid:
FileData guidFiles = new Answers().GetGuidFiles(this.GroupGuid);
FileType is always null
The origin of this issue of is that the stored procedure being called (vts_spFileGetListForGuid) does not return FileType.
One specific place FileType is intended to be used but does not behave as intended is in the AnswerUploadItem.cs for displaying the uploaded files.
fix:
change vts_spFileGetListForGuid to be:
SELECT FileId, GroupGuid, FileName, FileSize, FileType, SaveDate, -1 as VoterId FROM vts_tbFile WHERE GroupGuid = @GroupGuid
When creating a Friendly Name URL (menu Campaigns/Web/...) there should be a check on uniqueness of the name used. It should not be possible to use the same Friendly URL on two different surveys.
Even if a Friendly name for the URL is already used on a survey it is not rejected and no warning message is shown. If two similar Friendly URL's exist when used the choice of survey to be shown is 'random'.
Solution: build check on Friendly Name already used and block saving new entry if already in use.
There is a potential security risk if using a Friendly Name URL may open different surveys at random. To end users there will be great confusion if a survey is opening that should not.
SP v. 2.3
Current behaviour
If this option is activated respondents without code will be able to take the survey several times (if they receive the proper link) while respondent with the invitation code will only be able to submit their answers once.
Note: the helpfiles do not describe the current working correctly.
One side effect of having the checkbox checked is that the email addresses of respondents invited through the mailing menu are not registered on user level (set to anonymous instead). To have the email registered properly the "Only invitation" checkbox must be unchecked.
This is confusing/ counterintuitive and not correct.
Required Behaviour
Respondent and (registered) SP user
be able to login to SP and change/ edit the survey answers I submitted through the SP webapplication
correct mistakes or add additional info/ answers to the survey after a review or on receiving feedback.
Scenario 1
An SP User (repondent) who has answered and submitted a (SP Security Context secured) survey throught the Take Survey menu (one or more times) and who is authorised to access the Individual Reponses menu (new Roleright) to edit previously submitted answers
the respondent wants to edit (change/ add to) the answers submitted (individual reponses of the specific respondents/ SP user) and is logged in to SP and on opening the Individual Reponses webpage
a (table)list of survey reponses submitted by the particular SP user only (!) is presented of which each submission (row) can be clicked to open the full resultsreport of all Q/A's including edit options (change/ save/ resubmit).
Scenario 2
An SP Administrator or SP User who has the 'field entries access' role assigned
logged in to SP and on opening the Individual Responses webpage (former Field Reporting webpage)
a (table) list of survey reponses submitted by all (!) repondents (Sp users and other) is presented of which each submission (row) can be clicked to open the complete resultsreport including edit options (change/ save/ resubmit).
Scenario 3
A survey that needs to have the option to view/edit/change answers after submisson by the respondent
creating the survey (Q/A) and determining the survey settings
Graphically, if I had pages (A, B, C, D), with branching which cause flow to be either
If I add Z after A so I have (A, Z, B, C, D), my branching is now
New Regular Expressions to add to the default RegEx list:
Used to check for 0 - 60 minutes or 0 - 24 hours.
The branching capabilities are great but without being able to export them and import them, they are of limited usefulness.
Removing Html Table structures and replacement by Div's to improve mobile compatibility and reponsiveness
Survey Creator & SP administrator
be able to scroll the SP webpages in a user friendly and unambiguous way on PC's/ laptops and tablets
work efficiently and use different devices to create, publish and administer surveys
the formbuilder webpage (or any other SP webpage)
creating a lengthy survey longer than the browsers viewport
scrolling must be possibe on different devices (PC/ Laptop/ Tablet)
a lenghty SP webpage longer than the browsers viewport
its necessary to scroll up and down the page
scrolling must be possible by using the cursor or by pointing device
a lenghty SP webpage longer than the browsers viewport
its necessary to scroll up and down the page
there can be only one scroll bar necessary to scroll/ view all content
Proposal for new feature:
General description
Current working (SP 2.3.)
1- Create survey including Question with Upload Answer option;
2- submit survey including an uploaded file through the upload question
3- go to reports/ votereports -> click details to open voterreport of submitted survey
4- the uploaded file is shown correctly on the voterreport screen
5- next switch to Voter Answer Edit mode
6- the (list of) uploaded file(s) no longer shows
Expected situation:
Survey does work, but administration side does not successfully log in if Azure website configured with Azure AD authenitcation
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.