View Issue Details

This bug affects 1 person(s).
 12
IDProjectCategoryView StatusLast Update
17975Feature requestsSurvey editingpublic2023-11-23 15:05
Reporterollehar Assigned Toollehar  
PrioritynoneSeverityfeature 
Status closedResolutionwon't fix 
Summary17975: Add edit-in-place in survey preview
Description

See Phabricator here: https://project.limesurvey.org/T312

TagsNo tags attached.
Bug heat12
Story point estimate0
Users affected %0

Users monitoring this issue

There are no users monitoring this issue.

Activities

DenisChenu

DenisChenu

2022-03-21 07:50

developer   ~68746

Can be problematic with multilingual edit.

If you preview DE : you edit DE only, no ?

ollehar

ollehar

2022-03-21 10:08

administrator   ~68768

If you preview DE : you edit DE only, no ?

Yeah, that's the most basic case. Then you can switch between languages in the top menu, I guess.

tammo

tammo

2022-03-21 10:09

partner   ~68769

+1 from me

ollehar

ollehar

2022-03-21 13:04

administrator   ~68776

Last edited: 2022-03-21 13:04

A fundamental problem is how to relate question id etc with the HTML structure, without letting it break between survey theme updates. Will have to think about that. Maybe some json blob in an input element with info.

ollehar

ollehar

2022-03-28 10:52

administrator   ~68804

Basic example in pic

Selection_257.png (32,483 bytes)   
Selection_257.png (32,483 bytes)   
ollehar

ollehar

2022-03-28 10:52

administrator   ~68805

But maybe it would be better to inject a widget, if you want to switch question type, change mandatory or other attributes, etc.

DenisChenu

DenisChenu

2022-03-28 11:13

developer   ~68806

But maybe it would be better to inject a widget, if you want to switch question type, change mandatory or other attributes, etc.

Need both … ?

I like the pic, but :

  1. Need a «no edit mode» preview
  2. A Edit button
ollehar

ollehar

2022-03-28 11:18

administrator   ~68807

  1. This will probably be a plugin, not core feature, so one could easily disable/enable it
  2. Edit button is visible on hover :) Hard to make screenshot of
ollehar

ollehar

2022-04-04 17:43

administrator   ~68872

Another UX alternative is to always have pen icon visible on the left side of the question div. Then I can add other icons too, to set mandatory etc.

Also maybe a plus-icon under question div, to add new questions.

tammo

tammo

2022-04-04 17:47

partner   ~68873

Please: before starting to build (and fall in love with a beautiful solution):

  1. have a good UX designer look at it
  2. have some users (beginner, experienced) look at it
ollehar

ollehar

2022-04-04 17:50

administrator   ~68874

  1. Not possible, I'm doing this on-the-side while we're waiting for the "real" solution, implemented in ReactJS. Still in planning phase.
  2. Anyone is welcome to test and come with ideas. :) But at this point, I'm not even sure if it will be merged. Maybe if it's useful enough? More a proof-of-concept, I guess.
tammo

tammo

2022-04-04 17:52

partner   ~68875

If it is only a proof of concept, please wait until it can be done properly.... My 2 cents...

ollehar

ollehar

2022-04-04 17:53

administrator   ~68876

Properly = will never be released, will be discussed endlessly, no one will agree with anyone, etc etc etc. No thank you. It's more fun to just try something and see.

ollehar

ollehar

2022-04-04 17:57

administrator   ~68877

But of course it will never be merged into master without being long-term viable. :) Else - plugin.

DenisChenu

DenisChenu

2022-04-05 09:24

developer   ~68882

Last edited: 2022-04-05 09:24

My opinion : plugins are really good solution to create and improve without break core ;)

Just : when adding event : adding for more than one solution, create a more complete solution where you use only a part of it … Else we have one event by plugin …

ollehar

ollehar

2022-04-05 14:32

administrator   ~68889

Sure, sure. I'll just use beforeControllerAction or such. Usually enough.

DenisChenu

DenisChenu

2022-04-05 15:54

developer   ~68890

beforeSurveyPage in this case ?

  1. Check if user have right (and/or survey is active)
  2. If yes : add JS
  3. Use ajax request to update
ollehar

ollehar

2022-04-05 15:56

administrator   ~68891

Doing the job for me, Denis, thank you. :)

I should buy a book about UX...

tammo

tammo

2022-04-05 16:32

partner   ~68894

https://www.amazon.com/Dont-Make-Think-Revisited-Usability/dp/0321965515/ref=sr_1_1?keywords=dont+make+me+think&qid=1649169125&sr=8-1

DenisChenu

DenisChenu

2022-04-05 16:38

developer   ~68897

Like the title : Don't Make Me Think

Else staring by https://checklists.opquast.com/en/web-quality-assurance/ is a good idea too.

ollehar

ollehar

2022-04-06 22:01

administrator   ~68916

Other example where edit-button is always visible

Selection_264.png (28,241 bytes)   
Selection_264.png (28,241 bytes)   
ollehar

ollehar

2022-04-06 22:45

administrator   ~68917

All input fields available at once. Edit-button replaced with save and cancel.

Selection_265.png (7,849 bytes)   
Selection_265.png (7,849 bytes)   
DenisChenu

DenisChenu

2022-04-07 08:30

developer   ~68918

:+1:

ollehar

ollehar

2022-04-07 23:04

administrator   ~68940

Alright, moving it to core plugin EditInPlace, maybe I'll move it to my private repo later. Thanks for the feedback so far.

ollehar

ollehar

2022-04-09 00:11

administrator   ~68957

I was thinking about how to deal with question attributes, which are numerous, and can be custom made too. Maybe having a left column inside an iframe, or something which renders the partial views, could work. It's a pretty common schema for theme editing in general, I think.

ollehar

ollehar

2022-04-09 00:14

administrator   ~68958

Last edited: 2022-04-09 00:15

Also compare with Wordpress full-site editing (in pic a column to the right).

gutenberg-site-editor.jpg (134,369 bytes)
ollehar

ollehar

2022-04-09 00:22

administrator   ~68959

Sloppy mock of two-column preview edit.

Selection_267.png (76,786 bytes)   
Selection_267.png (76,786 bytes)   
ollehar

ollehar

2022-04-09 00:23

administrator   ~68960

Last edited: 2022-04-09 00:27

Main point would be to avoid code-duplication for attributes and subquestions/answer options.

Iframe might be usable, as they are same-origin.

ollehar

ollehar

2022-04-10 12:40

administrator   ~68964

Last edited: 2022-04-10 12:41

Adding some more buttons, for:

  • Toggle mandatory
  • Edit condition
  • Toggle encrypted
  • Move up or down in order

(Functionality not implemented.)

What's missing is opening advanced attributes. Dunno how to solve that, or if it should be available here. Maybe something rough, like search for attribute name, and then set to string value, without making a difference between attribute types (checkbox, string, text, number, ...).

Selection_269.png (18,887 bytes)   
Selection_269.png (18,887 bytes)   
ollehar

ollehar

2022-04-10 16:46

administrator   ~68965

Two possible designs for condition edit: modal and added input element. Not such a fan of either, personally. :| I'd like an input element appearing to the right of the tool buttons, but being less clunky than a huge modal.

Selection_271.png (14,730 bytes)   
Selection_271.png (14,730 bytes)   
Selection_270.png (22,651 bytes)   
Selection_270.png (22,651 bytes)   
ollehar

ollehar

2022-04-10 16:50

administrator   ~68966

Tighter modal design

Selection_272.png (21,253 bytes)   
Selection_272.png (21,253 bytes)   
ollehar

ollehar

2022-04-10 17:31

administrator   ~68967

Popup input next to button.

Selection_273.png (17,737 bytes)   
Selection_273.png (17,737 bytes)   
ollehar

ollehar

2022-04-10 20:11

administrator   ~68968

Maybe something that could interest @Mazi too? :)

ollehar

ollehar

2022-04-11 01:36

administrator   ~68969

Couple of opinions, mostly against using modals (break edit flow for user):

https://ux.stackexchange.com/questions/53459/inline-vs-modal-dialog-editing-for-complex-widgets

https://ux.stackexchange.com/questions/6559/inline-editing-or-modal-popup?rq=1

ollehar

ollehar

2022-04-11 01:37

administrator   ~68970

Yet another alternative, ellipsis button that expands into a mini-form in a left column.

Selection_275.png (18,680 bytes)   
Selection_275.png (18,680 bytes)   
Selection_274.png (21,755 bytes)   
Selection_274.png (21,755 bytes)   
Mazi

Mazi

2022-04-11 11:52

updater   ~68980

@ollehar, nice to see that finally some improvements for a better survey designer are implemented...

...BUT: to be honest, I totally agree to @tammo ("If it is only a proof of concept, please wait until it can be done properly").

I really wonder, are you working on this in your free time?
Why making this a plugin others first have to activate? That will only be used by 5% of users -> There is no benefit.
No UI design expert seems to be involved. I do not recommend developers making design decisions.

To put it in a nutshell: Let a UI design expert create some drafts. Then discuss how to best implment this. Then make this a core feature.

What do you think, @jelo?

jelo

jelo

2022-04-11 12:38

partner   ~68982

@Mazi: I fully trust Carsten to manage the UXprocess since it is the main project of the whole LimeSurvey GmbH.

And I don't think Olle needs my opinion about his playground projects. It's nice that LimeSurvey GmbH allows fun projects.
https://bugs.limesurvey.org/view.php?id=17975#c68876

ollehar

ollehar

2022-04-11 12:47

administrator   ~68984

Last edited: 2022-04-11 12:50

@Mazi Our CEO Jory is working with some external UX designers to do it "properly", but time to live might be 1-2 years. This task is a test to see if there's any "low-hanging fruit" we didn't take advantage of yet, and that I can deploy in the mean time. If anyone is interested. :) Also, it's fun. Otherwise I'll just dump it on the LimeStore instead.

Yes, this is mostly done on my free time.

Why make it a plugin? Well, if it turns out to be really great and useful, then we can discuss if it should be included as core feature instead. Otherwise, wait until the CEO-sanctioned project gets deployed.

I don't have access to any professional UX designer, except forums and friends, so. We do what we can. :) It's the LimeSurvey way! ^^

ollehar

ollehar

2022-04-12 20:58

administrator   ~69018

Feel free to unsubscribe if you're not interested in updates, btw

Getting pretty happy with current design. Clicking ellipsis will animate-expand the advanced form, for mandatory, encryption, condition and any question attribute from a drop-down.

Selection_279.png (33,505 bytes)   
Selection_279.png (33,505 bytes)   
tammo

tammo

2022-04-13 05:02

partner   ~69029

Feel free to unsubscribe if you're not interested in updates, btw

The fact that this issue attracts so many comments, means that people are very interested... ;-)

I personally think that this feature is a must have. The thing that I am afraid of is that this is now built by a developer that explores things (great!) and that it will remain in this stadium. While having a truly easy-to-use interface is something where both developers, UX experts and users (both novice users as well as power users) have their own roles.

Many times now new features stayed in the proof of concept stadium, which makes them usable for only smaller user groups (often power users only).

But to conclude: great that you are working on this, but please, please, mark this as something that will need further development with UX experts and users as one of the tasks for the new UX expert that is/will be hired by LimeSurvey.

tammo

tammo

2022-04-13 05:06

partner   ~69030

Must have: clear instructions for (sub-)theme designers

Mazi

Mazi

2022-04-13 10:45

updater   ~69038

I totally agree to @tammo. My fear is that a lot of work is put into that and later it becomes a plugin no one uses because there are still plans to have a better kick-ass version of that feature which then never gets implemented.
We have had some of these cases in the past that only resulted in a waste of time.

DenisChenu

DenisChenu

2022-04-13 10:52

developer   ~69039

becomes a plugin no one uses

LOL , seems pdfReport is used a lot for example.
A core plugin fix the issue : improve orther plugin system, more easy to fix and update etc …

You really think WP have such success without a good plugin structure ? WP, drupal, mybb, etc … are used only because they have a lot of plugin, they have a lot of plugin because there are lot of way to extend via plugin.

tammo

tammo

2022-04-13 11:07

partner   ~69040

Talking about plugin structure in WP and Drupal: this learns a lot from users when each plugin can have it's own channel for communication, like:

https://www.drupal.org/project/webform (competitor for LimeSurvey)
https://wordpress.org/plugins/wp-survey-and-poll/

They all have their own page, but more important: a support tab where users can interact with the main developer and with each other.

I thought Olle had already started with some basic steps on this path, but it could benefit from further love.... ;-)

tammo

tammo

2022-04-13 11:14

partner   ~69041

....because that way plugin developers can support their "own" users and even build "pro" versions for money.

Remember: LimeSurvey partners always pay 10% to LimeSurvey of the turnaround they make on LimeSurvey.

ollehar

ollehar

2022-04-13 11:56

administrator   ~69042

But to conclude: great that you are working on this, but please, please, mark this as something that will need further development with UX experts and users as one of the tasks for the new UX expert that is/will be hired by LimeSurvey.

I don't have any influence over who gets hired and not. The CEO is already working on a "real" solution together with external UX experts. But as I mentioned, time to live might be pretty long, since it's a complete redesign.

tammo

tammo

2022-04-13 12:06

partner   ~69043

Sounds great, Olle. Just show the CEO your work and this issue thread... ;-)

Look forward to testing this feature!

ollehar

ollehar

2022-04-13 12:09

administrator   ~69044

Last edited: 2022-04-13 12:12

I am posting some pics on our internal company chat. :)

Hoping to include this as core plugin, for version 0.1, together with other plugins of mine like MassAction Excel-like edit of questions and groups, and that right-click menu plugin. Especially since new CEO is not really interested in LimeStore yet either.

Including plugins in core repo is a good way to keep them compatible as well. ;)

ollehar

ollehar

2022-04-13 12:29

administrator   ~69045

Last edited: 2022-04-13 13:10

Many times now new features stayed in the proof of concept stadium, which makes them usable for only smaller user groups (often power users only).

Yeah, the downside of open-source - when it's not fun anymore, the author stops updating the repo. Since I'm employed by LimeSurvey GmbH I can sneak in some hours here and there (besides working on my free time), but of course the best way is to have official support, being part of our sprint project system and getting full attention. Add office politics to that...

ollehar

ollehar

2022-04-15 14:15

administrator   ~69096

Urgh. Question text and help is saved in session. Needs to createFieldMap and reset session after save. Costly. :(

ollehar

ollehar

2022-04-15 14:18

administrator   ~69097

Alright, basic save for question text, code and help now works. :) And now for the rest...

ollehar

ollehar

2022-04-15 14:35

administrator   ~69098

Video showing edit and save

test.mp4 (255,036 bytes)   
ollehar

ollehar

2022-04-20 20:34

administrator   ~69141

Moving a question up and down now "works", but easy to break by moving too far down.

ollehar

ollehar

2022-04-20 20:49

administrator   ~69142

Last edited: 2022-04-20 20:50

Description moved to Phabricator, since it supports Markdown

https://project.limesurvey.org/T312

Let me know if it's not possible to view for anyone.

ollehar

ollehar

2022-04-20 21:28

administrator   ~69143

Left-aligned advanced form, as another alternative.

Selection_283.png (27,244 bytes)   
Selection_283.png (27,244 bytes)   
tammo

tammo

2022-04-20 21:50

partner   ~69144

I think it would be a good idea to draw some attention and some feedback via LinkedIn or Facebook or Discord...

ollehar

ollehar

2022-04-20 22:52

administrator   ~69145

Before it's finished? Or even version 0.1? Internally, we have our colleague Jan currently responsible for social media.

Or were you thinking of a developer blog, or developer Twitter account?

tammo

tammo

2022-04-21 09:23

partner   ~69147

All debatable: but I think it is a good idea to expose early ideas to the public for:

  1. good ideas
  2. show that LimeSurvey develops (marketing)
ollehar

ollehar

2022-04-21 10:26

administrator   ~69148

Hm, I not a big fan of such extra work, haha. At least I'd wait until I know something will be production ready.

Otherwise, this issue here is my forum for feedback, from you guys. :))

tammo

tammo

2022-04-21 10:44

partner   ~69149

OK: I understand.
Idea:

  1. make tooltip when hovering over icon or field.
  2. color reject (red) and save (green) as they are action buttons as opposed to the other buttons (choice buttons), where the chosen option could be blue

What the heck happens with "Adv"?

DenisChenu

DenisChenu

2022-04-21 10:44

developer   ~69150

Moving a question up and down now "works", but easy to break by moving too far down.

We already have issue with ordering (not fixable is survey is active) in survey structure, remind to fix Question order EACH time a reorder is done.

DenisChenu

DenisChenu

2022-04-21 10:46

developer   ~69151

make tooltip when hovering over icon or field.

Add sr-only at start please … (and use it for tooltip)

color reject (red) and save (green)
And add some other visually system (fontawesome is great for this)

DenisChenu

DenisChenu

2022-04-21 10:47

developer   ~69152

About condition : never use input:text please , always textarea.

ollehar

ollehar

2022-04-21 10:56

administrator   ~69153

@tammo I have some tooltip. If you want, you can git checkout the branch, go to plugin manager, click "Scan files" and then install AND activate the EditInPlace plugin. Then click preview survey to test. Make sure to disable welcome page for the survey.

"Adv" is a temporary, it will be populated with all non-basic question attributes.

ollehar

ollehar

2022-04-21 10:59

administrator   ~69154

Add sr-only at start please … (and use it for tooltip)

Ehm, what's sr-only?

tammo

tammo

2022-04-21 11:34

partner   ~69155

https://duckduckgo.com/?q=sr-only&atb=v314-1&ia=web

ollehar

ollehar

2022-04-21 11:35

administrator   ~69156

Oh. Well, there's no way you can use this feature with a screen-reader anyway, no?

ollehar

ollehar

2022-04-21 11:42

administrator   ~69157

About condition : never use input:text please , always textarea.

I'll check that. Have to fix it for question help and text too.

tammo

tammo

2022-04-21 11:49

partner   ~69158

I guess that making on screen question editing available for visually impaired is too big a challenge for now.

ollehar

ollehar

2022-04-21 12:00

administrator   ~69159

Yep. Adding it to "won't have".

tammo

tammo

2022-04-21 12:05

partner   ~69160

Maybe screen reader message: this feature is not available via screen reader? Can be added later...

DenisChenu

DenisChenu

2022-04-21 12:12

developer   ~69161

Last edited: 2022-04-21 12:13

I guess that making on screen question editing available for visually impaired is too big a challenge for now.

I don't understand why ?
there are really no reason …
It's not because some developers have messed up in the admin that it's not possible. It just takes a lot longer to correct.. and don't do bad choice again and again…

Seeing the demo, only need some sr-only text and good labelling needed.
If you do a clean HTML system : it's easy to improve.
After can be improved using aria-live.

Can be added later...

NO NON and again NO !
It's like security : it's easy to do at start but complex to fix it after !

tammo

tammo

2022-04-21 13:01

partner   ~69164

I think I need to read more about this.

tammo

tammo

2022-04-21 13:04

partner   ~69165

Like this? https://www.deque.com/blog/text-links-practices-screen-readers/

Or do you (Denis) have better resources in English?

tammo

tammo

2022-04-21 13:18

partner   ~69166

@denis: is it your experience that visually impaired people do develop surveys? Or do we mainly see them as people that fill in surveys? I have no experience in this.

ollehar

ollehar

2022-04-21 13:27

administrator   ~69167

Feel free to continue that discussion on the forum or Discord. :) Not super-relevant for this plugin, I feel.

ollehar

ollehar

2022-04-22 16:56

administrator   ~69199

Here's a funny situation: It's possible to edit the condition equation and set it to 0. Then the question disappears, and you have to go to the old interface to change it. Maybe hidden questions should be able to "show" in some way? Or edit even if they're hidden?

ollehar

ollehar

2022-04-22 20:12

administrator   ~69203

Tiny video showing how to set mandatory to "On".

mandatory.mp4 (150,712 bytes)   
tammo

tammo

2022-04-23 07:59

partner   ~69205

Olle: Here's a funny situation: It's possible to edit the condition equation and set it to 0. Then the question disappears, and you have to go to the old interface to change it. Maybe hidden questions should be able to "show" in some way? Or edit even if they're hidden?

You could show it greyed out, like Powerpoint does when sheets are hidden.
Or you can place a bright red cross over the question... ;-)

tammo

tammo

2022-04-23 08:38

partner   ~69206

pp.png (72,566 bytes)   
pp.png (72,566 bytes)   
DenisChenu

DenisChenu

2022-04-23 10:01

developer   ~69207

Last edited: 2022-04-23 10:02

Feel free to continue that discussion on the forum or Discord. :) Not super-relevant for this plugin, I feel.

Your answer was «Yep. Adding it to "won't have".» … it's really dirty …

@denis: is it your experience that visually impaired people do develop surveys? Or do we mainly see them as people that fill in surveys? I have no experience in this.

  1. There was before, maybe not now (there are report here)
  2. And : they don't have the right to do ?

Else : https://webaim.org/intro/ i think.

ollehar

ollehar

2022-04-23 12:08

administrator   ~69208

Last edited: 2022-04-23 13:03

You could show it greyed out, like Powerpoint does when sheets are hidden.

Lots of options, but the technical limitation is the runtime system of LimeSurvey, and how to interact with it.

Maybe a top menu only visible when edit-in-place is active, and where you can list all questions? Or a left column... No, I have to think, really. :)

Or an icon visible where the hidden question is located. "Hidden question here". Then it would be easy to change the CSS to show it.

ollehar

ollehar

2022-04-23 12:09

administrator   ~69209

Your answer was «Yep. Adding it to "won't have".» … it's really dirty …

I mean, to make something usable for visually impaired people requires to have one such person included in the feedback loop. A couple of CSS classes won't cut it. It's a completely different design domain, I think.

DenisChenu

DenisChenu

2022-04-24 11:47

developer   ~69213

Start by Principles of Accessible Design part

With logical document structure : other user can improve really more easily. Currently : there are a lot of broken structure in LimeSurvey GUI, make it complex to understand and improve. Need to be rewritten from scratch to be imroved.
And adding a text alternative just when start is not a complex thing to do … when you create.

ollehar

ollehar

2022-04-24 13:16

administrator   ~69214

Denis, this is a web APP, not a web SITE. Did anyone blind even try to use LimeSurvey to create a survey, ever?

DenisChenu

DenisChenu

2022-04-24 18:32

developer   ~69215

Did anyone blind even try to use LimeSurvey to create a survey, ever?

I can find a report about usage of LimeSurvey GUI by blind people.

And : we have to offer a way, it's required by law !

Else all government go on another solution

ollehar

ollehar

2022-04-24 21:41

administrator   ~69216

I'd like a link to such a report...

Also, this is a non-official plugin, soooo...

DenisChenu

DenisChenu

2022-04-25 07:42

developer   ~69217

Sill, please :

  1. Use clean html logical structure : respect the standard
  2. Add text : it's more clear for all people. Picture can have different meaning depending on cultures and people.

I don't ask more …

ollehar

ollehar

2022-04-26 23:21

administrator   ~69257

I added a tiny message queue, to be able to send messages to the React component after it mounts, after an Ajax call. Some traffic going on... Save-message is just a small icon/check now, I think it's better.

ollehar

ollehar

2022-04-28 23:46

administrator   ~69296

Last edited: 2022-04-29 00:02

Testing with survey "Sample LimeSurvey for 1.92+". It's a bit problematic with EM events and evaluation. Imagine changing question text from

How long have you lived in {city} (years)?

to

How long have you lived in {city} {city} (years)?

Then new JS needs to be constructed and fetched from server. It's not enough to just replace the question text, the whole page needs a reload somehow. Especially if relevance equation is not simply 1, it seems :d Same issue when moving a question that has not relevance equation "1".

Maybe I can "smartly" trigger a page reload via Ajax when needed...

ollehar

ollehar

2022-04-29 00:05

administrator   ~69297

Can make a video later, but right now the EM warning is correctly generated after save, as seen in pictures.

em2.png (24,433 bytes)   
em2.png (24,433 bytes)   
em1.png (23,713 bytes)   
em1.png (23,713 bytes)   
DenisChenu

DenisChenu

2022-04-29 08:47

developer   ~69299

Maybe I can "smartly" trigger a page reload via Ajax when needed...

Maybe it's best to clearly inform user Expression System are not updated with this plugin. I really think it's best.

(and it's the case in admin GUI in current 5 : you need to check logic file to have new em).

DenisChenu

DenisChenu

2022-04-29 09:00

developer   ~69300

the EM warning is correctly generated after save

Then better than core admin GUI ?

ollehar

ollehar

2022-04-29 09:14

administrator   ~69301

 Then better than core admin GUI ?

Hehe, could be if it ever were feature complete. :D But that's another story.

DenisChenu

DenisChenu

2022-04-29 09:15

developer   ~69302

See https://bugs.limesurvey.org/view.php?id=18063

ollehar

ollehar

2022-04-29 09:25

administrator   ~69303

Maybe it's best to clearly inform user Expression System are not updated with this plugin. I really think it's best.

Maybe, we'll see what limitations apply in the end.

ollehar

ollehar

2022-04-29 18:29

administrator   ~69307

Found a fix for the EM issue. Now for some more testing. :)

DenisChenu

DenisChenu

2022-04-29 18:30

developer   ~69308

Hehe, could be if it ever were feature complete. :D But that's another story.

PS : even on wordpress : sometimes i prefer to use admin GUI , more clear. Online with WISIWIG ois great fort improve or simple part. But when you need complex …

ollehar

ollehar

2022-04-29 18:38

administrator   ~69309

Yes, personally I love comparing LS to Wordpress! And having two types of edit mechanisms might not be totally bad...

Gonna add add/delete question next. :D

DenisChenu

DenisChenu

2022-04-29 18:54

developer   ~69310

And having two types of edit mechanisms might not be totally bad...

Clearly not : create questionnaire in admin GUI, review text and some tag in public gui :)

But unsure about complex condition or adding question etc … :)

ollehar

ollehar

2022-04-29 20:14

administrator   ~69312

Maybe third GUI with Excel-like massive action? See pic. For changing multiple expressions at once.

p_massaction_ls3_pic1.png (15,542 bytes)   
p_massaction_ls3_pic1.png (15,542 bytes)   
ollehar

ollehar

2022-04-29 20:55

administrator   ~69313

Thinking of how to deal with "add new question", and how/when to choose question type.

qt.png (48,644 bytes)   
qt.png (48,644 bytes)   
ollehar

ollehar

2022-04-30 00:03

administrator   ~69316

Meeeh, expression reset won't work with new questions, because they don't have the LEMrel1234 function generated. :( Full page reload needed.

DenisChenu

DenisChenu

2022-04-30 16:12

developer   ~69320

Meeeh, expression reset won't work with new questions, because they don't have the LEMrel1234 function generated. :( Full page reload needed.

It's what i mean to allow some EM not clean with such editing. Clearly put at documentation.
Maybe add a "reload" page button ?

ollehar

ollehar

2022-04-30 17:43

administrator   ~69321

You can do document,write(newHtmlViaAjax); BUT it will show a white page during writing. I have another idea, to replace the <script> tag containing the LEMrel1234 from EM. Will try next week again. :D

ollehar

ollehar

2022-05-01 22:31

administrator   ~69323

Last edited: 2022-05-01 22:32

Ah, maybe not possible to replace <script> tag with new JS, because it would contain same function names, like LEVval1234(), and I don't think you can undeclare a function in JS once it's declared.

Edit, or maybe it is: window.LEMval1234 = <new def here>;

ollehar

ollehar

2022-05-02 20:02

administrator   ~69354

Last edited: 2022-05-02 20:05

Hmmm, was able to inject new LEM script, BUT got new errors

ReferenceError: assignment to undeclared variable relChange446

Guess variables are not properly declared, or not in proper namespace.

Edit, fixed by using window.eval() instead of eval(). XSS problems...?

ollehar

ollehar

2022-05-02 20:12

administrator   ~69355

Last edited: 2022-05-02 20:16

This is really cool, short video showcasing dynamic reload of expression after adding new question, including warning about expression error.

This should work with condition too, but of course it can always evaluate to 0, in which case the question will be hidden.

Maybe I can add a top menu, fixed, with "Add question" and "Show all hidden questions"

exprtest.mp4 (147,957 bytes)   
ollehar

ollehar

2022-05-02 20:46

administrator   ~69356

Last edited: 2022-05-02 20:51

Example of top-buttons design. "Add question" buttons would be removed from single question tools, and only be at the top.

Hm, or maybe a side-menu would be better... Gonna try.

topbuttons.png (57,214 bytes)   
topbuttons.png (57,214 bytes)   
ollehar

ollehar

2022-05-02 21:13

administrator   ~69358

Example left menu

leftmenu.png (64,151 bytes)   
leftmenu.png (64,151 bytes)   
ollehar

ollehar

2022-05-02 21:47

administrator   ~69363

bigbuttons.png (77,106 bytes)   
bigbuttons.png (77,106 bytes)   
ollehar

ollehar

2022-05-02 21:56

administrator   ~69364

buttomleftsep.png (72,339 bytes)   
buttomleftsep.png (72,339 bytes)   
ollehar

ollehar

2022-05-04 21:24

administrator   ~69402

Another "could have" feature is to add review comments to questions. Wasn't that something people wanted at some point?

jelo

jelo

2022-05-04 21:34

partner   ~69403

@ollehar: Something like this?
https://bugs.limesurvey.org/view.php?id=7407
My feature request didn't raise many comments since 2010 ;-)
Just @holch .

ollehar

ollehar

2022-05-04 21:39

administrator   ~69404

Yeah, but without all those extra features, like prevent randomization. This would only be a "comment question" feature. And those comments could be read by anyone previewing the survey with edit-in-place plugin enabled (if they have survey access, of course).

Mazi

Mazi

2022-05-04 22:15

updater   ~69405

As for the review feature: We have covered that by a plugin which automatically generates a comment question for every survey page on survey activation if enabled.
Additional feature: Show previous comments by others at survey runtime.
All doable with the current plugin system.

ollehar

ollehar

2022-05-04 22:21

administrator   ~69406

That plugin is not available for free, I assume?

Hm, maybe technical, but why didn't you create a separate database table for comments?

Mazi

Mazi

2022-05-04 22:44

updater   ~69407

Correct, that plugin is not available for free. Would have loved to provide it for sale at the LimeStore :-(

The current approach allows to easily export the comments with the response details, thus we do not use a separate table. that just adds complexity.
On de-activation the plugin automatically removes the comment questions from the survey structure so switching from review to live mode only means de-activating and then re-activating the survey.

ollehar

ollehar

2022-05-04 22:51

administrator   ~69408

Aha. I'd probably just add a separate table that's visible during preview together with other edit-in-place controls, but not when active, but of course I didn't check your use-case and workflow in detail.

holch

holch

2022-05-04 22:59

reporter   ~69409

"prevent randomization" is far more helpful for people who test a survey (check if all items are there) than comments. Are comments helpful? Yes. But usually this will be documented in some for anyway (Email, word document, Powerpoint with screenshots), etc.

But it is a real pain in the *ss when you have to check e.g. translations and wording of a long list of items that is randomized. So the first round without randomization is always a good thing to make sure the basics are there.

ollehar

ollehar

2022-05-04 23:00

administrator   ~69410

@holch, got it, but that's another discussion. Can totally be done, tho, by controlling the seed. Actually, I think the seed is stored in the answer, so that it always has the same order for each participant.

ollehar

ollehar

2022-05-04 23:53

administrator   ~69411

Last edited: 2022-05-04 23:59

OK, plugin now works on multiple pages, BUT you will get the warning about "Don't use browser buttons". Also didn't test with question-by-question or all-in-one modes.

Edit: Question-by-question seems fine too.

Getting closer to version 0.1.0. :) At which point I'll upload it to limestore, but it depends on a couple of core features that are only in dev at the moment.

ollehar

ollehar

2022-05-09 21:55

administrator   ~69532

Applied a fix to dev branch so that the warning can be explicitly silenced by an URL parameter.

@Mazi Could you perhaps describe more the workflow/use-case/scenario for commenting questions during survey preview? Who are the stakeholders? Which phases exists, or perhaps a review loop of type? Should comments be included in survey export?

Mazi

Mazi

2022-05-10 08:59

updater   ~69534

@ollehar, we do not do the commenting that often. Usually we use our plugin which on activation adds a single comment field as text question at the end of every page. So comments get saved along with the other answers.
Sometimes this is a repetitive process so you create an alpha and beta version of a survey and each time you use the comment text questions for feedback.

Sometimes we also show existing comments at the help text for reference.

ollehar

ollehar

2022-05-10 10:09

administrator   ~69536

@Mazi You don't have a page where you can review all comments? And make changes accordingly?

Mazi

Mazi

2022-05-10 22:08

updater   ~69558

@ollehar: Correct, review feedback is just like any other text answer. But you can easily export these columns only with the default answer export.

As mentioned, a review tool is not used that much.

jelo

jelo

2022-05-11 00:13

partner   ~69560

A 4min video shows the workflow of a pretest and comment mode by Unipark (the student version of EFS Survey Globalpark/Questback).
https://www.youtube.com/watch?v=cp_gGBhgHiQ

ollehar

ollehar

2022-05-11 11:07

administrator   ~69565

@Mazi, got it, thank you. :)

@jelo Nice link.

ollehar

ollehar

2022-05-11 22:40

administrator   ~69595

Now also uploading progress on my old Twitter account ^^

https://twitter.com/OlleHarstedt/status/1524488567027871750

tammo

tammo

2022-05-12 08:59

partner   ~69596

Idea: forget about display mode/edit mode: make field directly editable, without activating the edit mode.

And make adding a question more intuitive by showing a "+" under an question when hovering over it. Please look at how Divi theme (Wordpress) did this.

https://www.elegantthemes.com/documentation/divi/visual-builder/

DenisChenu

DenisChenu

2022-05-12 09:05

developer   ~69597

Idea: forget about display mode/edit mode: make field directly editable, without activating the edit mode.

No, it's a bad idea … easy to do error in this case .

ollehar

ollehar

2022-05-12 10:58

administrator   ~69598

Hm, that visual builder system is very "tight". :) Will look a bit closer.

DenisChenu

DenisChenu

2022-05-12 11:16

developer   ~69599

Last edited: 2022-05-12 11:16

@ollehar : $ git checkout feature/17975-add-edit-in-place-in-survey-preview
La branche 'feature/17975-add-edit-in-place-in-survey-preview' est paramétrée pour suivre la branche distante 'feature/17975-add-edit-in-place-in-survey-preview' depuis 'origin'.
Basculement sur la nouvelle branche 'feature/17975-add-edit-in-place-in-survey-preview'

I didn't find EditInPlace plugin in plugins management ?
Even when reload …

I don't understand why …

ollehar

ollehar

2022-05-12 11:22

administrator   ~69600

No, you have to click "Scan files", since it's not added in the database. Remember, plugin manager doesn't list file system content by default anymore.

DenisChenu

DenisChenu

2022-05-12 15:36

developer   ~69602

yes already done
But oups , directory used for another test

        'usePluginWhitelist' => true,
         'pluginWhitelist' => ['none'],
DenisChenu

DenisChenu

2022-05-12 15:42

developer   ~69603

You create without debug set ?

ollehar

ollehar

2022-05-12 16:19

administrator   ~69604

Frontend helper? Hm, I always code with debug 2. How did you get there?

ollehar

ollehar

2022-05-12 16:24

administrator   ~69605

Maybe a language issue, I only tried with English surveys so far! :|

DenisChenu

DenisChenu

2022-05-12 16:38

developer   ~69606

In preview survey, move next, move next , edit.

i think it's better to have it only in preview me (group or question) since with move next/move previous : you have to reset EM session when update a condition or a question.

I already put a dev issue about this situation (debug=0)
Start a survey,
Move next
Move next
Update something in survey GUI
Move next : survey is empty, only navigation.
(in 3.X)

ollehar

ollehar

2022-05-12 16:40

administrator   ~69607

Well, I do reset the EM after each save.

ollehar

ollehar

2022-05-12 16:43

administrator   ~69608

Can you upload the survey you used, please?

DenisChenu

DenisChenu

2022-05-12 17:20

developer   ~69609

Well, I do reset the EM after each save.

This explain why there are potentially such issue (in my opinion)

limesurvey_survey_749224.lss (46,446 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<document>
 <LimeSurveyDocType>Survey</LimeSurveyDocType>
 <DBVersion>486</DBVersion>
 <languages>
  <language>en</language>
 </languages>
 <answers>
  <fields>
   <fieldname>aid</fieldname>
   <fieldname>qid</fieldname>
   <fieldname>code</fieldname>
   <fieldname>sortorder</fieldname>
   <fieldname>assessment_value</fieldname>
   <fieldname>scale_id</fieldname>
  </fields>
  <rows>
   <row>
    <aid><![CDATA[16]]></aid>
    <qid><![CDATA[24]]></qid>
    <code><![CDATA[DEB]]></code>
    <sortorder><![CDATA[1]]></sortorder>
    <assessment_value><![CDATA[0]]></assessment_value>
    <scale_id><![CDATA[0]]></scale_id>
   </row>
   <row>
    <aid><![CDATA[17]]></aid>
    <qid><![CDATA[24]]></qid>
    <code><![CDATA[FEDO]]></code>
    <sortorder><![CDATA[2]]></sortorder>
    <assessment_value><![CDATA[0]]></assessment_value>
    <scale_id><![CDATA[0]]></scale_id>
   </row>
   <row>
    <aid><![CDATA[18]]></aid>
    <qid><![CDATA[24]]></qid>
    <code><![CDATA[SLACK]]></code>
    <sortorder><![CDATA[3]]></sortorder>
    <assessment_value><![CDATA[0]]></assessment_value>
    <scale_id><![CDATA[0]]></scale_id>
   </row>
   <row>
    <aid><![CDATA[19]]></aid>
    <qid><![CDATA[24]]></qid>
    <code><![CDATA[SUSE]]></code>
    <sortorder><![CDATA[4]]></sortorder>
    <assessment_value><![CDATA[0]]></assessment_value>
    <scale_id><![CDATA[0]]></scale_id>
   </row>
   <row>
    <aid><![CDATA[20]]></aid>
    <qid><![CDATA[24]]></qid>
    <code><![CDATA[ARCH]]></code>
    <sortorder><![CDATA[5]]></sortorder>
    <assessment_value><![CDATA[0]]></assessment_value>
    <scale_id><![CDATA[0]]></scale_id>
   </row>
  </rows>
 </answers>
 <answer_l10ns>
  <fields>
   <fieldname>id</fieldname>
   <fieldname>aid</fieldname>
   <fieldname>answer</fieldname>
   <fieldname>language</fieldname>
  </fields>
  <rows>
   <row>
    <id><![CDATA[16]]></id>
    <aid><![CDATA[16]]></aid>
    <answer><![CDATA[<img src="{SURVEYRESOURCESURL}files/debian-logo.png" alt="Debian" />]]></answer>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[17]]></id>
    <aid><![CDATA[17]]></aid>
    <answer><![CDATA[<img src="{SURVEYRESOURCESURL}files/fedora-logo.png" alt="Fedora" />]]></answer>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[18]]></id>
    <aid><![CDATA[18]]></aid>
    <answer><![CDATA[<img src="{SURVEYRESOURCESURL}files/slackware-logo.png" alt="Slack" />]]></answer>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[19]]></id>
    <aid><![CDATA[19]]></aid>
    <answer><![CDATA[<img src="{SURVEYRESOURCESURL}files/suse-logo.png" alt="Suse" />]]></answer>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[20]]></id>
    <aid><![CDATA[20]]></aid>
    <answer><![CDATA[<img src="{SURVEYRESOURCESURL}files/archlinux-logo.png" alt="ArcLinux" />]]></answer>
    <language><![CDATA[en]]></language>
   </row>
  </rows>
 </answer_l10ns>
 <groups>
  <fields>
   <fieldname>gid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <gid><![CDATA[15]]></gid>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[1]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
   <row>
    <gid><![CDATA[16]]></gid>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[2]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
   <row>
    <gid><![CDATA[17]]></gid>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[4]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
   <row>
    <gid><![CDATA[18]]></gid>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[5]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
   <row>
    <gid><![CDATA[19]]></gid>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[3]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
  </rows>
 </groups>
 <group_l10ns>
  <fields>
   <fieldname>id</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>group_name</fieldname>
   <fieldname>description</fieldname>
   <fieldname>language</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>group_order</fieldname>
   <fieldname>randomization_group</fieldname>
   <fieldname>grelevance</fieldname>
  </fields>
  <rows>
   <row>
    <id><![CDATA[15]]></id>
    <gid><![CDATA[15]]></gid>
    <group_name><![CDATA[Prefilling]]></group_name>
    <description/>
    <language><![CDATA[en]]></language>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[1]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
   <row>
    <id><![CDATA[16]]></id>
    <gid><![CDATA[16]]></gid>
    <group_name><![CDATA[The Linux distributions logos]]></group_name>
    <description/>
    <language><![CDATA[en]]></language>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[2]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
   <row>
    <id><![CDATA[17]]></id>
    <gid><![CDATA[17]]></gid>
    <group_name><![CDATA[Report]]></group_name>
    <description/>
    <language><![CDATA[en]]></language>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[4]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
   <row>
    <id><![CDATA[18]]></id>
    <gid><![CDATA[18]]></gid>
    <group_name><![CDATA[Hidden group]]></group_name>
    <description/>
    <language><![CDATA[en]]></language>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[5]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
   <row>
    <id><![CDATA[19]]></id>
    <gid><![CDATA[19]]></gid>
    <group_name><![CDATA[Hidden group too]]></group_name>
    <description/>
    <language><![CDATA[en]]></language>
    <sid><![CDATA[749224]]></sid>
    <group_order><![CDATA[3]]></group_order>
    <randomization_group/>
    <grelevance/>
   </row>
  </rows>
 </group_l10ns>
 <questions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>encrypted</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>question_theme_name</fieldname>
   <fieldname>modulename</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[22]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[15]]></gid>
    <type><![CDATA[Q]]></type>
    <title><![CDATA[USER]]></title>
    <preg/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[0]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <question_theme_name><![CDATA[multipleshorttext]]></question_theme_name>
    <modulename/>
   </row>
   <row>
    <qid><![CDATA[23]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[16]]></gid>
    <type><![CDATA[M]]></type>
    <title><![CDATA[KnowUse]]></title>
    <preg/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[0]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <question_theme_name><![CDATA[multiplechoice]]></question_theme_name>
   </row>
   <row>
    <qid><![CDATA[24]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[16]]></gid>
    <type><![CDATA[R]]></type>
    <title><![CDATA[Best]]></title>
    <preg/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[1]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[count(that.KnowUse.NAOK) > 0]]></relevance>
    <question_theme_name><![CDATA[ranking]]></question_theme_name>
   </row>
   <row>
    <qid><![CDATA[25]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[17]]></gid>
    <type><![CDATA[X]]></type>
    <title><![CDATA[Information]]></title>
    <preg/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[0]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <question_theme_name><![CDATA[boilerplate]]></question_theme_name>
   </row>
   <row>
    <qid><![CDATA[26]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[17]]></gid>
    <type><![CDATA[|]]></type>
    <title><![CDATA[Report]]></title>
    <preg/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[1]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <question_theme_name><![CDATA[file_upload]]></question_theme_name>
    <modulename/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[18]]></gid>
    <type><![CDATA[|]]></type>
    <title><![CDATA[ReportCopy]]></title>
    <preg/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[0]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <question_theme_name><![CDATA[file_upload]]></question_theme_name>
    <modulename/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <parent_qid><![CDATA[0]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[19]]></gid>
    <type><![CDATA[|]]></type>
    <title><![CDATA[ReportCopyCopy]]></title>
    <preg/>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[0]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <question_theme_name><![CDATA[file_upload]]></question_theme_name>
    <modulename/>
   </row>
  </rows>
 </questions>
 <subquestions>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>parent_qid</fieldname>
   <fieldname>sid</fieldname>
   <fieldname>gid</fieldname>
   <fieldname>type</fieldname>
   <fieldname>title</fieldname>
   <fieldname>preg</fieldname>
   <fieldname>other</fieldname>
   <fieldname>mandatory</fieldname>
   <fieldname>encrypted</fieldname>
   <fieldname>question_order</fieldname>
   <fieldname>scale_id</fieldname>
   <fieldname>same_default</fieldname>
   <fieldname>relevance</fieldname>
   <fieldname>question_theme_name</fieldname>
   <fieldname>modulename</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[29]]></qid>
    <parent_qid><![CDATA[22]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[15]]></gid>
    <type><![CDATA[Q]]></type>
    <title><![CDATA[NAME]]></title>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[1]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
    <modulename/>
   </row>
   <row>
    <qid><![CDATA[30]]></qid>
    <parent_qid><![CDATA[22]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[15]]></gid>
    <type><![CDATA[Q]]></type>
    <title><![CDATA[EMAIL]]></title>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[2]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance/>
    <modulename/>
   </row>
   <row>
    <qid><![CDATA[31]]></qid>
    <parent_qid><![CDATA[23]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[16]]></gid>
    <type><![CDATA[M]]></type>
    <title><![CDATA[DEB]]></title>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[1]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
   </row>
   <row>
    <qid><![CDATA[32]]></qid>
    <parent_qid><![CDATA[23]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[16]]></gid>
    <type><![CDATA[M]]></type>
    <title><![CDATA[FEDO]]></title>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[2]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
   </row>
   <row>
    <qid><![CDATA[33]]></qid>
    <parent_qid><![CDATA[23]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[16]]></gid>
    <type><![CDATA[M]]></type>
    <title><![CDATA[SLACK]]></title>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[3]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
   </row>
   <row>
    <qid><![CDATA[34]]></qid>
    <parent_qid><![CDATA[23]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[16]]></gid>
    <type><![CDATA[M]]></type>
    <title><![CDATA[SUSE]]></title>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[4]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
   </row>
   <row>
    <qid><![CDATA[35]]></qid>
    <parent_qid><![CDATA[23]]></parent_qid>
    <sid><![CDATA[749224]]></sid>
    <gid><![CDATA[16]]></gid>
    <type><![CDATA[M]]></type>
    <title><![CDATA[ARCH]]></title>
    <other><![CDATA[N]]></other>
    <mandatory><![CDATA[N]]></mandatory>
    <encrypted><![CDATA[N]]></encrypted>
    <question_order><![CDATA[5]]></question_order>
    <scale_id><![CDATA[0]]></scale_id>
    <same_default><![CDATA[0]]></same_default>
    <relevance><![CDATA[1]]></relevance>
   </row>
  </rows>
 </subquestions>
 <question_l10ns>
  <fields>
   <fieldname>id</fieldname>
   <fieldname>qid</fieldname>
   <fieldname>question</fieldname>
   <fieldname>help</fieldname>
   <fieldname>script</fieldname>
   <fieldname>language</fieldname>
  </fields>
  <rows>
   <row>
    <id><![CDATA[22]]></id>
    <qid><![CDATA[22]]></qid>
    <question><![CDATA[Tell me who you are. If you put a valid email : you receive a PDF with the report.]]></question>
    <help><![CDATA[{if(is_empty(USER_EMAIL.NAOK),"<div class='error'>If you leave email empty, you don&apos;t get the report.</div>","")}
{if(!is_empty(USER_EMAIL.NAOK) && !regexMatch("/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,})?$/",USER_EMAIL.NAOK),"<div class='warning'>Are you sure your email is valid ?</div>","")}
{if(!is_empty(USER_EMAIL.NAOK) && regexMatch("/^(\w[-._+\w]*\w@\w[-._\w]*\w\.\w{2,})?$/",USER_EMAIL.NAOK),"<div class='good'>Your email seems valid, we send the PDF report.</div>","")}
<div class="alert alert-warning">Email is deactivated on this instance</div>]]></help>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[23]]></id>
    <qid><![CDATA[23]]></qid>
    <question><![CDATA[Did you use or know this ditributions ddddezae]]></question>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[24]]></id>
    <qid><![CDATA[24]]></qid>
    <question><![CDATA[What distribution you using most]]></question>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[25]]></id>
    <qid><![CDATA[25]]></qid>
    <question><![CDATA[Here : we construct the report. This question can be hidden, you can use html, expression manager. The report file use the question text.]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[26]]></id>
    <qid><![CDATA[26]]></qid>
    <question><![CDATA[<h1>
	Here is your report</h1>
<p>
	Hi {USER_NAME.NAOK},</p>
<p>
	You know {count(that.KnowUse.NAOK)} linux distribution on the list.</p>
{if(is_empty(Best_1.NAOK),"<p>	You don't rank any of this distribution</p>","<p>The distribution you use the most are "+Best_1.shown+"</p>")}
<h2 style="text-align:center">
	Some style usage</h2>
<p style="text-align: right;">
	Text align : right</p>
<ol>
	<li style="text-align: right;">
		A ordered list</li>
	<li style="text-align: right;">
		With 3 elements</li>
	<li style="text-align: right;">
		The 3rd element</li>
</ol>
<p>
	Some link : <a href="http://extensions.sondages.pro/about/contact.html">Get support for this plugin</a><br />
	or <a href="https://framagit.org/SondagePro-LimeSurvey-plugin/pdfReport">fork it</a>, use it, adapt it, distribute it; because <strong><a href="https://www.gnu.org/licenses/agpl.html"><span style="color:#B22222;">you are free to do it</span></a></strong>.</p>
<p>
	Long line can have issue , best is to use <br> or to use only short line :</p>
<p>
	Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dui nunc, faucibus ac neque in, gravida sollicitudin nunc. Phasellus venenatis nunc et eros pretium sodales quis sit amet enim. Morbi in dapibus elit. Quisque sit amet ornare quam, sed aliquet lectus. Quisque finibus facilisis erat, sit amet sagittis lorem. Aliquam erat volutpat. Cras pretium ultrices risus, suscipit vestibulum odio vehicula semper.</p>
<br pagebreak="true" />
<h1>
	A new page is here</h1>
<h2>
	image width is set in cm</h2>
<p>
	<img alt="gnu and penguin" src="https://test.sondages.proupload/surveys/749224/images/gnu-and-penguin-color-1024x946.jpg"  style="width: 18cm; height: auto;"/></p>
<p>
	<em>Better to use internal files than external dur to downloading files</em></p>
<h2>
	A broken image</h2>
<p>
	<img alt="broken image " src="invalid.png" style="width: 18cm; height: auto;" /></p>
<p>
	After the image</p>
]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[34]]></id>
    <qid><![CDATA[27]]></qid>
    <question><![CDATA[<h1>
	Here is your report</h1>
<p>
	Hi {USER_NAME.NAOK},</p>
<p>
	You know {count(that.KnowUse.NAOK)} linux distribution on the list.</p>
{if(is_empty(Best_1.NAOK),"<p>	You don't rank any of this distribution</p>","<p>The distribution you use the most are "+Best_1.shown+"</p>")}
<h2 style="text-align:center">
	Some style usage</h2>
<p style="text-align: right;">
	Text align : right</p>
<ol>
	<li style="text-align: right;">
		A ordered list</li>
	<li style="text-align: right;">
		With 3 elements</li>
	<li style="text-align: right;">
		The 3rd element</li>
</ol>
<p>
	Some link : <a href="http://extensions.sondages.pro/about/contact.html">Get support for this plugin</a><br />
	or <a href="https://framagit.org/SondagePro-LimeSurvey-plugin/pdfReport">fork it</a>, use it, adapt it, distribute it; because <strong><a href="https://www.gnu.org/licenses/agpl.html"><span style="color:#B22222;">you are free to do it</span></a></strong>.</p>
<p>
	Long line can have issue , best is to use <br> or to use only short line :</p>
<p>
	Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dui nunc, faucibus ac neque in, gravida sollicitudin nunc. Phasellus venenatis nunc et eros pretium sodales quis sit amet enim. Morbi in dapibus elit. Quisque sit amet ornare quam, sed aliquet lectus. Quisque finibus facilisis erat, sit amet sagittis lorem. Aliquam erat volutpat. Cras pretium ultrices risus, suscipit vestibulum odio vehicula semper.</p>
<br pagebreak="true" />
<h1>
	A new page is here</h1>
<h2>
	image width is set in cm</h2>
<p>
	<img alt="gnu and penguin" src="https://test.sondages.proupload/surveys/749224/images/gnu-and-penguin-color-1024x946.jpg"  style="width: 18cm; height: auto;"/></p>
<p>
	<em>Better to use internal files than external dur to downloading files</em></p>
<h2>
	A broken image</h2>
<p>
	<img alt="broken image " src="invalid.png" style="width: 18cm; height: auto;" /></p>
<p>
	After the image</p>
]]></question>
    <help/>
    <script/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[35]]></id>
    <qid><![CDATA[28]]></qid>
    <question><![CDATA[<h1>
	Here is your report</h1>
<p>
	Hi {USER_NAME.NAOK},</p>
<p>
	You know {count(that.KnowUse.NAOK)} linux distribution on the list.</p>
{if(is_empty(Best_1.NAOK),"<p>	You don't rank any of this distribution</p>","<p>The distribution you use the most are "+Best_1.shown+"</p>")}
<h2 style="text-align:center">
	Some style usage</h2>
<p style="text-align: right;">
	Text align : right</p>
<ol>
	<li style="text-align: right;">
		A ordered list</li>
	<li style="text-align: right;">
		With 3 elements</li>
	<li style="text-align: right;">
		The 3rd element</li>
</ol>
<p>
	Some link : <a href="http://extensions.sondages.pro/about/contact.html">Get support for this plugin</a><br />
	or <a href="https://framagit.org/SondagePro-LimeSurvey-plugin/pdfReport">fork it</a>, use it, adapt it, distribute it; because <strong><a href="https://www.gnu.org/licenses/agpl.html"><span style="color:#B22222;">you are free to do it</span></a></strong>.</p>
<p>
	Long line can have issue , best is to use <br> or to use only short line :</p>
<p>
	Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec dui nunc, faucibus ac neque in, gravida sollicitudin nunc. Phasellus venenatis nunc et eros pretium sodales quis sit amet enim. Morbi in dapibus elit. Quisque sit amet ornare quam, sed aliquet lectus. Quisque finibus facilisis erat, sit amet sagittis lorem. Aliquam erat volutpat. Cras pretium ultrices risus, suscipit vestibulum odio vehicula semper.</p>
<br pagebreak="true" />
<h1>
	A new page is here</h1>
<h2>
	image width is set in cm</h2>
<p>
	<img alt="gnu and penguin" src="https://test.sondages.proupload/surveys/749224/images/gnu-and-penguin-color-1024x946.jpg"  style="width: 18cm; height: auto;"/></p>
<p>
	<em>Better to use internal files than external dur to downloading files</em></p>
<h2>
	A broken image</h2>
<p>
	<img alt="broken image " src="invalid.png" style="width: 18cm; height: auto;" /></p>
<p>
	After the image</p>
]]></question>
    <help/>
    <script/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[27]]></id>
    <qid><![CDATA[29]]></qid>
    <question><![CDATA[Your name]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[28]]></id>
    <qid><![CDATA[30]]></qid>
    <question><![CDATA[Your email]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[29]]></id>
    <qid><![CDATA[31]]></qid>
    <question><![CDATA[<img src="{SURVEYRESOURCESURL}files/debian-logo.png" alt="Debian" />]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[30]]></id>
    <qid><![CDATA[32]]></qid>
    <question><![CDATA[<img src="{SURVEYRESOURCESURL}files/fedora-logo.png" alt="Fedora" />]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[31]]></id>
    <qid><![CDATA[33]]></qid>
    <question><![CDATA[<img src="{SURVEYRESOURCESURL}files/slackware-logo.png" alt="Slack" />]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[32]]></id>
    <qid><![CDATA[34]]></qid>
    <question><![CDATA[<img src="{SURVEYRESOURCESURL}files/suse-logo.png" alt="Suse" />]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <id><![CDATA[33]]></id>
    <qid><![CDATA[35]]></qid>
    <question><![CDATA[<img src="{SURVEYRESOURCESURL}files/archlinux-logo.png" alt="ArcLinux" />]]></question>
    <help/>
    <language><![CDATA[en]]></language>
   </row>
  </rows>
 </question_l10ns>
 <question_attributes>
  <fields>
   <fieldname>qid</fieldname>
   <fieldname>attribute</fieldname>
   <fieldname>value</fieldname>
   <fieldname>language</fieldname>
  </fields>
  <rows>
   <row>
    <qid><![CDATA[23]]></qid>
    <attribute><![CDATA[random_order]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[24]]></qid>
    <attribute><![CDATA[array_filter]]></attribute>
    <value><![CDATA[KnowUse]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[24]]></qid>
    <attribute><![CDATA[max_subquestions]]></attribute>
    <value><![CDATA[5]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[26]]></qid>
    <attribute><![CDATA[pdfReport]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[26]]></qid>
    <attribute><![CDATA[pdfReportPrintAnswer]]></attribute>
    <value><![CDATA[2]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[26]]></qid>
    <attribute><![CDATA[pdfReportSavedFileName]]></attribute>
    <value><![CDATA[PDF-Report-Sample]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[26]]></qid>
    <attribute><![CDATA[pdfReportSendByEmailContent]]></attribute>
    <value><![CDATA[confirm]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[26]]></qid>
    <attribute><![CDATA[pdfReportSendByEmailMail]]></attribute>
    <value><![CDATA[{USER_EMAIL}]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[26]]></qid>
    <attribute><![CDATA[pdfReportSubTitle]]></attribute>
    <value><![CDATA[{SURVEYNAME}]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[26]]></qid>
    <attribute><![CDATA[pdfReportTitle]]></attribute>
    <value><![CDATA[{SITENAME}]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[allowed_filetypes]]></attribute>
    <value><![CDATA[png, gif, doc, odt, jpg, jpeg, pdf, png, heic]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[cssclass]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[hidden]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[hide_tip]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[max_filesize]]></attribute>
    <value><![CDATA[10240]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[max_num_of_files]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[min_num_of_files]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[page_break]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReport]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportContent]]></attribute>
    <value/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportPrintAnswer]]></attribute>
    <value><![CDATA[2]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportSanitizeSavedFileName]]></attribute>
    <value><![CDATA[base]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportSavedFileName]]></attribute>
    <value><![CDATA[PDF-Report-Sample]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportSendByEmailAttachment]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportSendByEmailContent]]></attribute>
    <value><![CDATA[admin_notification]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportSendByEmailMail]]></attribute>
    <value><![CDATA[denis@sondages.pro]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportSubTitle]]></attribute>
    <value><![CDATA[{SURVEYNAME}]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[pdfReportTitle]]></attribute>
    <value><![CDATA[{SITENAME}]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[random_group]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[save_as_default]]></attribute>
    <value><![CDATA[N]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[show_comment]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[show_title]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[statistics_graphtype]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[27]]></qid>
    <attribute><![CDATA[statistics_showgraph]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[allowed_filetypes]]></attribute>
    <value><![CDATA[png, gif, doc, odt, jpg, jpeg, pdf, png, heic]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[cssclass]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[hidden]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[hide_tip]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[max_filesize]]></attribute>
    <value><![CDATA[10240]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[max_num_of_files]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[min_num_of_files]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[page_break]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReport]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportContent]]></attribute>
    <value/>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportPrintAnswer]]></attribute>
    <value><![CDATA[2]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportSanitizeSavedFileName]]></attribute>
    <value><![CDATA[base]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportSavedFileName]]></attribute>
    <value><![CDATA[PDF-Report-Sample]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportSendByEmailAttachment]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportSendByEmailContent]]></attribute>
    <value><![CDATA[admin_notification]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportSendByEmailMail]]></attribute>
    <value><![CDATA[denis@shnoulle.net]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportSubTitle]]></attribute>
    <value><![CDATA[{SURVEYNAME}]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[pdfReportTitle]]></attribute>
    <value><![CDATA[{SITENAME}]]></value>
    <language><![CDATA[en]]></language>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[random_group]]></attribute>
    <value/>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[save_as_default]]></attribute>
    <value><![CDATA[N]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[show_comment]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[show_title]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[statistics_graphtype]]></attribute>
    <value><![CDATA[0]]></value>
    <language/>
   </row>
   <row>
    <qid><![CDATA[28]]></qid>
    <attribute><![CDATA[statistics_showgraph]]></attribute>
    <value><![CDATA[1]]></value>
    <language/>
   </row>
  </rows>
 </question_attributes>
 <surveys>
  <fields>
   <fieldname>sid</fieldname>
   <fieldname>gsid</fieldname>
   <fieldname>admin</fieldname>
   <fieldname>expires</fieldname>
   <fieldname>startdate</fieldname>
   <fieldname>adminemail</fieldname>
   <fieldname>anonymized</fieldname>
   <fieldname>faxto</fieldname>
   <fieldname>format</fieldname>
   <fieldname>savetimings</fieldname>
   <fieldname>template</fieldname>
   <fieldname>language</fieldname>
   <fieldname>additional_languages</fieldname>
   <fieldname>datestamp</fieldname>
   <fieldname>usecookie</fieldname>
   <fieldname>allowregister</fieldname>
   <fieldname>allowsave</fieldname>
   <fieldname>autonumber_start</fieldname>
   <fieldname>autoredirect</fieldname>
   <fieldname>allowprev</fieldname>
   <fieldname>printanswers</fieldname>
   <fieldname>ipaddr</fieldname>
   <fieldname>ipanonymize</fieldname>
   <fieldname>refurl</fieldname>
   <fieldname>showsurveypolicynotice</fieldname>
   <fieldname>publicstatistics</fieldname>
   <fieldname>publicgraphs</fieldname>
   <fieldname>listpublic</fieldname>
   <fieldname>htmlemail</fieldname>
   <fieldname>sendconfirmation</fieldname>
   <fieldname>tokenanswerspersistence</fieldname>
   <fieldname>assessments</fieldname>
   <fieldname>usecaptcha</fieldname>
   <fieldname>usetokens</fieldname>
   <fieldname>bounce_email</fieldname>
   <fieldname>attributedescriptions</fieldname>
   <fieldname>emailresponseto</fieldname>
   <fieldname>emailnotificationto</fieldname>
   <fieldname>tokenlength</fieldname>
   <fieldname>showxquestions</fieldname>
   <fieldname>showgroupinfo</fieldname>
   <fieldname>shownoanswer</fieldname>
   <fieldname>showqnumcode</fieldname>
   <fieldname>bouncetime</fieldname>
   <fieldname>bounceprocessing</fieldname>
   <fieldname>bounceaccounttype</fieldname>
   <fieldname>bounceaccounthost</fieldname>
   <fieldname>bounceaccountpass</fieldname>
   <fieldname>bounceaccountencryption</fieldname>
   <fieldname>bounceaccountuser</fieldname>
   <fieldname>showwelcome</fieldname>
   <fieldname>showprogress</fieldname>
   <fieldname>questionindex</fieldname>
   <fieldname>navigationdelay</fieldname>
   <fieldname>nokeyboard</fieldname>
   <fieldname>alloweditaftercompletion</fieldname>
   <fieldname>googleanalyticsstyle</fieldname>
   <fieldname>googleanalyticsapikey</fieldname>
   <fieldname>tokenencryptionoptions</fieldname>
  </fields>
  <rows>
   <row>
    <sid><![CDATA[749224]]></sid>
    <gsid><![CDATA[1]]></gsid>
    <admin><![CDATA[Denis Chenu]]></admin>
    <adminemail><![CDATA[denis@sondages.pro]]></adminemail>
    <anonymized><![CDATA[Y]]></anonymized>
    <faxto/>
    <format><![CDATA[G]]></format>
    <savetimings><![CDATA[N]]></savetimings>
    <template><![CDATA[vanilla]]></template>
    <language><![CDATA[en]]></language>
    <additional_languages/>
    <datestamp><![CDATA[N]]></datestamp>
    <usecookie><![CDATA[N]]></usecookie>
    <allowregister><![CDATA[N]]></allowregister>
    <allowsave><![CDATA[N]]></allowsave>
    <autonumber_start><![CDATA[7]]></autonumber_start>
    <autoredirect><![CDATA[N]]></autoredirect>
    <allowprev><![CDATA[Y]]></allowprev>
    <printanswers><![CDATA[Y]]></printanswers>
    <ipaddr><![CDATA[N]]></ipaddr>
    <ipanonymize><![CDATA[N]]></ipanonymize>
    <refurl><![CDATA[N]]></refurl>
    <showsurveypolicynotice><![CDATA[0]]></showsurveypolicynotice>
    <publicstatistics><![CDATA[N]]></publicstatistics>
    <publicgraphs><![CDATA[N]]></publicgraphs>
    <listpublic><![CDATA[Y]]></listpublic>
    <htmlemail><![CDATA[Y]]></htmlemail>
    <sendconfirmation><![CDATA[Y]]></sendconfirmation>
    <tokenanswerspersistence><![CDATA[N]]></tokenanswerspersistence>
    <assessments><![CDATA[N]]></assessments>
    <usecaptcha><![CDATA[N]]></usecaptcha>
    <usetokens><![CDATA[N]]></usetokens>
    <bounce_email><![CDATA[denis@sondages.pro]]></bounce_email>
    <emailresponseto/>
    <emailnotificationto><![CDATA[{USER_EMAIL.NAOK}]]></emailnotificationto>
    <tokenlength><![CDATA[15]]></tokenlength>
    <showxquestions><![CDATA[Y]]></showxquestions>
    <showgroupinfo><![CDATA[B]]></showgroupinfo>
    <shownoanswer><![CDATA[Y]]></shownoanswer>
    <showqnumcode><![CDATA[X]]></showqnumcode>
    <bounceprocessing><![CDATA[N]]></bounceprocessing>
    <showwelcome><![CDATA[N]]></showwelcome>
    <showprogress><![CDATA[Y]]></showprogress>
    <questionindex><![CDATA[2]]></questionindex>
    <navigationdelay><![CDATA[0]]></navigationdelay>
    <nokeyboard><![CDATA[N]]></nokeyboard>
    <alloweditaftercompletion><![CDATA[N]]></alloweditaftercompletion>
    <googleanalyticsstyle><![CDATA[0]]></googleanalyticsstyle>
    <googleanalyticsapikey/>
    <tokenencryptionoptions/>
   </row>
  </rows>
 </surveys>
 <surveys_languagesettings>
  <fields>
   <fieldname>surveyls_survey_id</fieldname>
   <fieldname>surveyls_language</fieldname>
   <fieldname>surveyls_title</fieldname>
   <fieldname>surveyls_description</fieldname>
   <fieldname>surveyls_welcometext</fieldname>
   <fieldname>surveyls_endtext</fieldname>
   <fieldname>surveyls_policy_notice</fieldname>
   <fieldname>surveyls_policy_error</fieldname>
   <fieldname>surveyls_policy_notice_label</fieldname>
   <fieldname>surveyls_url</fieldname>
   <fieldname>surveyls_urldescription</fieldname>
   <fieldname>surveyls_email_invite_subj</fieldname>
   <fieldname>surveyls_email_invite</fieldname>
   <fieldname>surveyls_email_remind_subj</fieldname>
   <fieldname>surveyls_email_remind</fieldname>
   <fieldname>surveyls_email_register_subj</fieldname>
   <fieldname>surveyls_email_register</fieldname>
   <fieldname>surveyls_email_confirm_subj</fieldname>
   <fieldname>surveyls_email_confirm</fieldname>
   <fieldname>surveyls_dateformat</fieldname>
   <fieldname>surveyls_attributecaptions</fieldname>
   <fieldname>email_admin_notification_subj</fieldname>
   <fieldname>email_admin_notification</fieldname>
   <fieldname>email_admin_responses_subj</fieldname>
   <fieldname>email_admin_responses</fieldname>
   <fieldname>surveyls_numberformat</fieldname>
   <fieldname>attachments</fieldname>
  </fields>
  <rows>
   <row>
    <surveyls_survey_id><![CDATA[749224]]></surveyls_survey_id>
    <surveyls_language><![CDATA[en]]></surveyls_language>
    <surveyls_title><![CDATA[pdfReport test survey]]></surveyls_title>
    <surveyls_description><![CDATA[The pdfReport test survey]]></surveyls_description>
    <surveyls_welcometext/>
    <surveyls_endtext><![CDATA[<p>
	{if(is_empty(USER_EMAIL.NAOK),"You don't put any email, we can not send you the example pdf.","The server send you an email with the pdf, see you mailbox.")}</p>
<p>
	You can download this survey : <a charset="utf8" href="/upload/surveys/{SID}/files/limesurvey_survey_sendPdReport.lss" lang="en" target="_blank" type="text/xml">limesurvey_survey_sendPdReport.lss</a> (without this link). But remind : the picture must be uploaded to your survey too.</p>
]]></surveyls_endtext>
    <surveyls_url/>
    <surveyls_urldescription/>
    <surveyls_email_invite_subj><![CDATA[Invitation to participate in a survey]]></surveyls_email_invite_subj>
    <surveyls_email_invite><![CDATA[Dear {FIRSTNAME},<br />
<br />
you have been invited to participate in a survey.<br />
<br />
The survey is titled:<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
To participate, please click on the link below.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Click here to do the survey:<br />
{SURVEYURL}<br />
<br />
If you do not want to participate in this survey and don't want to receive any more invitations please click the following link:<br />
{OPTOUTURL}<br />
<br />
If you are blacklisted but want to participate in this survey and want to receive invitations please click the following link:<br />
{OPTINURL}]]></surveyls_email_invite>
    <surveyls_email_remind_subj><![CDATA[Reminder to participate in a survey]]></surveyls_email_remind_subj>
    <surveyls_email_remind><![CDATA[Dear {FIRSTNAME},<br />
<br />
Recently we invited you to participate in a survey.<br />
<br />
We note that you have not yet completed the survey, and wish to remind you that the survey is still available should you wish to take part.<br />
<br />
The survey is titled:<br />
"{SURVEYNAME}"<br />
<br />
"{SURVEYDESCRIPTION}"<br />
<br />
To participate, please click on the link below.<br />
<br />
Sincerely,<br />
<br />
{ADMINNAME} ({ADMINEMAIL})<br />
<br />
----------------------------------------------<br />
Click here to do the survey:<br />
{SURVEYURL}<br />
<br />
If you do not want to participate in this survey and don't want to receive any more invitations please click the following link:<br />
{OPTOUTURL}]]></surveyls_email_remind>
    <surveyls_email_register_subj><![CDATA[Survey registration confirmation]]></surveyls_email_register_subj>
    <surveyls_email_register><![CDATA[Dear {FIRSTNAME},<br />
<br />
You, or someone using your email address, have registered to participate in an online survey titled {SURVEYNAME}.<br />
<br />
To complete this survey, click on the following URL:<br />
<br />
{SURVEYURL}<br />
<br />
If you have any questions about this survey, or if you did not register to participate and believe this email is in error, please contact {ADMINNAME} at {ADMINEMAIL}.]]></surveyls_email_register>
    <surveyls_email_confirm_subj><![CDATA[Confirmation of your participation in our survey]]></surveyls_email_confirm_subj>
    <surveyls_email_confirm><![CDATA[Dear {USER_NAME.NAOK},<br />
<br />
this email is to confirm that you have completed the survey titled {SURVEYNAME} and your response has been saved. Thank you for participating.<br />
<br />
Please find the your report as an attachment.<br />
<br />
{Report.question}
<br/>
Sincerely,<br />
<br />
{ADMINNAME}]]></surveyls_email_confirm>
    <surveyls_dateformat><![CDATA[9]]></surveyls_dateformat>
    <email_admin_notification_subj><![CDATA[Response submission for survey {SURVEYNAME}]]></email_admin_notification_subj>
    <email_admin_notification><![CDATA[Hello,<br />
<br />
A new response was submitted for your survey '{SURVEYNAME}'.<br />
<br />
{Report.question}
<br />
View statistics by clicking here:<br />
{STATISTICSURL}]]></email_admin_notification>
    <email_admin_responses_subj><![CDATA[Response submission for survey {SURVEYNAME} with results]]></email_admin_responses_subj>
    <email_admin_responses><![CDATA[Hello,<br />
<br />
A new response was submitted for your survey '{SURVEYNAME}'.<br />
<br />
Click the following link to reload the survey:<br />
{RELOADURL}<br />
<br />
Click the following link to see the individual response:<br />
{VIEWRESPONSEURL}<br />
<br />
Click the following link to edit the individual response:<br />
{EDITRESPONSEURL}<br />
<br />
View statistics by clicking here:<br />
{STATISTICSURL}<br />
<br />
<br />
The following answers were given by the participant:<br />
{ANSWERTABLE}]]></email_admin_responses>
    <surveyls_numberformat><![CDATA[0]]></surveyls_numberformat>
    <attachments><![CDATA[a:0:{}]]></attachments>
   </row>
  </rows>
 </surveys_languagesettings>
 <themes>
  <theme>
   <sid>749224</sid>
   <template_name>vanilla</template_name>
   <config>
    <options>inherit</options>
   </config>
  </theme>
 </themes>
 <themes_inherited>
  <theme>
   <sid>749224</sid>
   <template_name>vanilla</template_name>
   <config>
    <options>
     <ajaxmode>off</ajaxmode>
     <brandlogo>on</brandlogo>
     <container>on</container>
     <hideprivacyinfo>off</hideprivacyinfo>
     <brandlogofile>themes/survey/vanilla/files/logo.png</brandlogofile>
     <font>noto</font>
     <showpopups>1</showpopups>
     <showclearall>off</showclearall>
     <questionhelptextposition>top</questionhelptextposition>
    </options>
   </config>
  </theme>
 </themes_inherited>
</document>
limesurvey_survey_749224.lss (46,446 bytes)   
ollehar

ollehar

2022-05-12 17:43

administrator   ~69610

Resetting EM is a must, since condition can change during edit, and also expressions inside the question text.

ollehar

ollehar

2022-05-12 18:35

administrator   ~69612

Your survey works for me, Denis.

  1. Import survey
  2. Preview
  3. Click next
  4. Click next
  5. Click edit and save -> no problem

?

DenisChenu

DenisChenu

2022-05-12 18:45

developer   ~69613

Yes,
I surely do something else …

ollehar

ollehar

2022-05-12 18:51

administrator   ~69615

Or give me the full stacktrace as html file?

DenisChenu

DenisChenu

2022-05-13 08:47

developer   ~69621

When i find it again :)
Sure …

ollehar

ollehar

2022-05-18 23:09

administrator   ~69812

Fixed delete question button.
Fixed add new question global button (no longer attached to question).

ollehar

ollehar

2022-05-21 14:00

administrator   ~69951

Branch deleted, code moved to private repo: https://github.com/olleharstedt/EditInPlace

ollehar

ollehar

2022-09-23 23:59

administrator   ~71929

https://account.limesurvey.org/limestore/extensiondetails/91/plugin/editinplace

Version added to LimeStore. Works with LS 5.4.x :)

Mazi

Mazi

2022-11-27 16:04

updater   ~72903

@ollehar, the link to LimeStore is not working anymore (https://account.limesurvey.org/limestore/extensiondetails/91/plugin/editinplace).

Mazi

Mazi

2022-11-27 16:16

updater   ~72904

Weird, first I got some DB related error and now I can access it...

ollehar

ollehar

2022-11-29 10:23

administrator   ~72928

Might have been temporary error.

Mazi

Mazi

2022-11-29 13:42

updater   ~72930

@ollehar, we now had a look with one of our customer. They liked it a lot.
Some questions:

  1. Are there any plans for simple text edits at answer options/sub questions as well? Simply clicking onto the element and then adjusting the text should do the trick.
  2. How about more complex edits like changing the question type? I think that is not doable right now and too complex in general?
  3. Can this be extended so you can also easily edit group titel and description?
Mazi

Mazi

2022-11-29 15:53

updater   ~72935

More questions:

  1. Can we open the condition editor in a popup window?
    Because being able to enter expressions is nice but nothjing the common user is able to.

  2. Can we add basic editor features (bold, add links) to the edit mode e.g. for formatting question details?

  3. In the long run: Are there any plans for making the feature more flexible or configurable? E.g. by having global plugin settings for showing certain details that a user can edit.

ollehar

ollehar

2022-11-29 17:17

administrator   ~72936

Heyo, thanks for showing interest. :)

Main problem: Most of the functionality will be made obsolete by a new survey/question editor, which we might deploy at least a first version of Q1 2023. So extending the functionality should probably be focused on features that only make sense during preview or testing stage of a survey, like adding review comments. So I'm not sure how much it makes sense to keep adding features at this point. I guess we can try to drill it down, be more specific? That makes implementation easier. Anything is possible, just a question of time.

Mazi

Mazi

2022-11-29 18:37

updater   ~72938

@ollehar, thanks for the feedback. Where could we get more details about the new feature planned? Are there any screen designs? Will this be a similar edit-in-place approach or an adjusted version of the question designer at the main admin screen?

ollehar

ollehar

2022-11-29 21:00

administrator   ~72939

Last edited: 2022-11-29 21:00

It would be a design more similar to our competitors. :) So not based on the preview screen.

DenisChenu

DenisChenu

2022-11-30 09:00

developer   ~72940

Competitor sample screenshot ?

ollehar

ollehar

2022-12-01 14:43

administrator   ~72964

Last edited: 2022-12-01 14:43

I'm not part of the UX team, but I know they looked at our biggest competitors like SurveyMonkey, Qualtrics, etc, and also different page editors on Wordpress like their new Gutenberg editor.

DenisChenu

DenisChenu

2022-12-01 15:19

developer   ~72968

like their new Gutenberg editor

It's interesting for a HTML page, i really don't think it's interesting for a form.

Form are totally different : must be easy and understandable before all other …

ollehar

ollehar

2022-12-01 16:18

administrator   ~72969

As I said, I'm not in the UX team. We'll try to have something working in Q1 2023, everyone will be welcome to leave comments. :)

DenisChenu

DenisChenu

2022-12-01 16:25

developer   ~72970

everyone will be welcome to leave comments. :)

Where ? Currently i see some commit with code and put information

The lats one was about link and underline : currently link are shown underline in BS5 because it's better for UX (except specific link (menu/pseudo buttons etc …)) ut scss of LimeSurvey disable this usage.

ollehar

ollehar

2022-12-01 16:33

administrator   ~72971

When we deploy version 0.1.

DenisChenu

DenisChenu

2022-12-01 16:45

developer   ~72972

PS : sorry discussion out of context :)

You can delete if needed .

ollehar

ollehar

2022-12-12 12:14

administrator   ~73057

@Mazi Could you perhaps give me a priority of the wished features? What's nr 1?

Mazi

Mazi

2022-12-12 12:23

updater   ~73062

@ollehar, I think core features currently missing are:
a) edit answer options/sub-questions (simple text edit)
AND
b) editing survey title, group title and description

As next steps it would be nice t:,
c) be able to call the condition editor
AND
d) have basic editor icons for text formatting (e.g. bold font, adding a link, ...) available

For the advanced editing mode it would be nice to have these features
e) change question type
f) make the feature more flexible or configurable e.g. by having global plugin settings for showing certain details that a user will be allowed to edit.

ollehar

ollehar

2022-12-13 16:56

administrator   ~73095

Alright thanks, maybe I can have a look later.

ollehar

ollehar

2023-02-23 21:32

administrator   ~73943

WIP of subquestion edit

editsubq.png (68,912 bytes)   
editsubq.png (68,912 bytes)   
Mazi

Mazi

2023-02-24 09:55

updater   ~73944

Great, looking forward to testing this, Olle!

holch

holch

2023-02-24 13:17

reporter   ~73946

Where do you guys see how it looks like? I can't see any images. Seems like Olle is posting images, right? But for me, it is all empty.

Mazi

Mazi

2023-02-24 15:58

updater   ~73947

@holch, there was a discussion about this on Discord yesterday. I also can't see any images.

holch

holch

2023-02-24 17:23

reporter   ~73948

Ahh, thanks Mazi! I thought I am getting crazy, hahahaha. Didn't follow Discord the last days.

holch

holch

2023-02-24 17:26

reporter   ~73949

Ha, switching off Ublock for mantis as suggested by Denis did the trick. I can see images!

Mazi

Mazi

2023-03-17 14:20

updater   ~74163

@ollehar, would it be possible to add a plugin setting at survey level to turn the plugin off? One might want to use the edit in place feature for some surveys but not for all.

ollehar

ollehar

2023-03-17 14:33

administrator   ~74164

@ollehar, would it be possible to add a plugin setting at survey level to turn the plugin off? One might want to use the edit in place feature for some surveys but not for all.

Yeah, I noticed this too. Hm, maybe an issue with how plugins interact (or don't interact) with the permission system. :d

Mazi

Mazi

2023-03-17 15:06

updater   ~74170

We usually just add an "Active" setting at survey level and if not ON, we skip all further plugin processes.

ollehar

ollehar

2023-03-17 15:19

administrator   ~74172

You have link to code? You can email a snippet if it's not public.

Mazi

Mazi

2023-03-19 21:37

updater   ~74192

@ollehr, some sample code:

  1. Add setting:
    public function beforeSurveySettings()
    {
    $event = $this->event;
    $surveyId = intval($event->get('survey'));

    $event->set(&quot;surveysettings.{$this->id}&quot;, [
        'name' => get_class($this),
        'settings' => [
            'isActive' => [
                'type' => 'boolean',
                'label' => 'isActive',
                'current' => $this->getIsActive($surveyId),
                'help' => 'Activate plugin for this survey'
            ],

    ...
    ...
    ...

  2. Simple function for checking the setting status:
    public function getIsActive(int $sid): bool
    {
    return (bool) $this->get('isActive', 'Survey', $sid, false);
    }

  3. Skip further actions at plugin event call if plugin is not active:
    public function afterSurveyComplete()
    {
    $event = $this->getEvent();
    $surveyId = $event->get('surveyId');

    $isActive = $this->getIsActive($surveyId);
    if (!$isActive) return;

    ...
    ...
    ...

Hope that helps!

ollehar

ollehar

2023-03-20 11:20

administrator   ~74202

Ah nice, I'll have a look, thank you. +1

ollehar

ollehar

2023-03-27 22:41

administrator   ~74290

Last edited: 2023-03-27 22:47

Alright, pushed the survey setting fix to master branch. I won't upload a new zip file to limestore right now, but you can download it from github.

You forgot the newSurveySettings event tho. ;) I copied it from example settings plugin (thanks Denis).

ollehar

ollehar

2023-11-23 15:05

administrator   ~78681

Closing this since it's a private project.

Issue History

Date Modified Username Field Change
2022-03-18 20:16 ollehar New Issue
2022-03-18 20:28 ollehar Description Updated
2022-03-18 20:34 ollehar Description Updated
2022-03-18 20:34 ollehar Steps to Reproduce Updated
2022-03-21 07:50 DenisChenu Note Added: 68746
2022-03-21 07:50 DenisChenu Bug heat 0 => 2
2022-03-21 10:08 ollehar Note Added: 68768
2022-03-21 10:08 ollehar Bug heat 2 => 4
2022-03-21 10:08 ollehar Description Updated
2022-03-21 10:09 tammo Note Added: 68769
2022-03-21 10:09 tammo Bug heat 4 => 6
2022-03-21 13:04 ollehar Note Added: 68776
2022-03-21 13:04 ollehar Note Edited: 68776
2022-03-24 15:54 ollehar Description Updated
2022-03-28 10:52 ollehar Note Added: 68804
2022-03-28 10:52 ollehar File Added: Selection_257.png
2022-03-28 10:52 ollehar Note Added: 68805
2022-03-28 11:13 DenisChenu Note Added: 68806
2022-03-28 11:18 ollehar Note Added: 68807
2022-04-04 17:43 ollehar Note Added: 68872
2022-04-04 17:43 ollehar Assigned To => ollehar
2022-04-04 17:43 ollehar Status new => assigned
2022-04-04 17:47 tammo Note Added: 68873
2022-04-04 17:50 ollehar Note Added: 68874
2022-04-04 17:52 tammo Note Added: 68875
2022-04-04 17:53 ollehar Note Added: 68876
2022-04-04 17:57 ollehar Note Added: 68877
2022-04-05 09:24 DenisChenu Note Added: 68882
2022-04-05 09:24 DenisChenu Note Edited: 68882
2022-04-05 14:32 ollehar Note Added: 68889
2022-04-05 15:54 DenisChenu Note Added: 68890
2022-04-05 15:56 ollehar Note Added: 68891
2022-04-05 16:32 tammo Note Added: 68894
2022-04-05 16:38 DenisChenu Note Added: 68897
2022-04-06 22:01 ollehar Note Added: 68916
2022-04-06 22:01 ollehar File Added: Selection_264.png
2022-04-06 22:45 ollehar Note Added: 68917
2022-04-06 22:45 ollehar File Added: Selection_265.png
2022-04-07 08:30 DenisChenu Note Added: 68918
2022-04-07 23:04 ollehar Note Added: 68940
2022-04-09 00:11 ollehar Note Added: 68957
2022-04-09 00:14 ollehar Note Added: 68958
2022-04-09 00:14 ollehar File Added: gutenberg-site-editor.jpg
2022-04-09 00:15 ollehar Note Edited: 68958
2022-04-09 00:22 ollehar Note Added: 68959
2022-04-09 00:22 ollehar File Added: Selection_267.png
2022-04-09 00:23 ollehar Note Added: 68960
2022-04-09 00:27 ollehar Note Edited: 68960
2022-04-10 12:40 ollehar Note Added: 68964
2022-04-10 12:40 ollehar File Added: Selection_269.png
2022-04-10 12:41 ollehar Note Edited: 68964
2022-04-10 16:46 ollehar Note Added: 68965
2022-04-10 16:46 ollehar File Added: Selection_271.png
2022-04-10 16:46 ollehar File Added: Selection_270.png
2022-04-10 16:50 ollehar Note Added: 68966
2022-04-10 16:50 ollehar File Added: Selection_272.png
2022-04-10 17:31 ollehar Note Added: 68967
2022-04-10 17:31 ollehar File Added: Selection_273.png
2022-04-10 20:11 ollehar Note Added: 68968
2022-04-11 01:36 ollehar Note Added: 68969
2022-04-11 01:37 ollehar Note Added: 68970
2022-04-11 01:37 ollehar File Added: Selection_275.png
2022-04-11 01:37 ollehar File Added: Selection_274.png
2022-04-11 11:52 Mazi Note Added: 68980
2022-04-11 11:52 Mazi Bug heat 6 => 8
2022-04-11 12:38 jelo Note Added: 68982
2022-04-11 12:38 jelo Bug heat 8 => 10
2022-04-11 12:47 ollehar Note Added: 68984
2022-04-11 12:50 ollehar Note Edited: 68984
2022-04-11 12:53 ollehar Description Updated
2022-04-11 12:53 ollehar Description Updated
2022-04-12 19:55 ollehar Description Updated
2022-04-12 20:58 ollehar Note Added: 69018
2022-04-12 20:58 ollehar File Added: Selection_279.png
2022-04-12 22:49 ollehar Description Updated
2022-04-12 22:50 ollehar Description Updated
2022-04-13 05:02 tammo Note Added: 69029
2022-04-13 05:06 tammo Note Added: 69030
2022-04-13 10:45 Mazi Note Added: 69038
2022-04-13 10:52 DenisChenu Note Added: 69039
2022-04-13 11:07 tammo Note Added: 69040
2022-04-13 11:14 tammo Note Added: 69041
2022-04-13 11:56 ollehar Note Added: 69042
2022-04-13 12:06 tammo Note Added: 69043
2022-04-13 12:09 ollehar Note Added: 69044
2022-04-13 12:12 ollehar Note Edited: 69044
2022-04-13 12:29 ollehar Note Added: 69045
2022-04-13 13:10 ollehar Note Edited: 69045
2022-04-15 14:15 ollehar Note Added: 69096
2022-04-15 14:18 ollehar Note Added: 69097
2022-04-15 14:35 ollehar Note Added: 69098
2022-04-15 14:35 ollehar File Added: test.mp4
2022-04-15 14:51 ollehar Description Updated
2022-04-15 14:51 ollehar Description Updated
2022-04-20 20:34 ollehar Note Added: 69141
2022-04-20 20:35 ollehar Description Updated
2022-04-20 20:36 ollehar Description Updated
2022-04-20 20:39 ollehar Description Updated
2022-04-20 20:48 ollehar Description Updated
2022-04-20 20:49 ollehar Note Added: 69142
2022-04-20 20:50 ollehar Note Edited: 69142
2022-04-20 20:50 ollehar Note Edited: 69142
2022-04-20 21:28 ollehar Note Added: 69143
2022-04-20 21:28 ollehar File Added: Selection_283.png
2022-04-20 21:50 tammo Note Added: 69144
2022-04-20 22:52 ollehar Note Added: 69145
2022-04-21 09:23 tammo Note Added: 69147
2022-04-21 10:26 ollehar Note Added: 69148
2022-04-21 10:44 tammo Note Added: 69149
2022-04-21 10:44 DenisChenu Note Added: 69150
2022-04-21 10:46 DenisChenu Note Added: 69151
2022-04-21 10:47 DenisChenu Note Added: 69152
2022-04-21 10:56 ollehar Note Added: 69153
2022-04-21 10:59 ollehar Note Added: 69154
2022-04-21 11:34 tammo Note Added: 69155
2022-04-21 11:35 ollehar Note Added: 69156
2022-04-21 11:42 ollehar Note Added: 69157
2022-04-21 11:49 tammo Note Added: 69158
2022-04-21 12:00 ollehar Note Added: 69159
2022-04-21 12:05 tammo Note Added: 69160
2022-04-21 12:12 DenisChenu Note Added: 69161
2022-04-21 12:13 DenisChenu Note Edited: 69161
2022-04-21 13:01 tammo Note Added: 69164
2022-04-21 13:04 tammo Note Added: 69165
2022-04-21 13:18 tammo Note Added: 69166
2022-04-21 13:27 ollehar Note Added: 69167
2022-04-22 16:56 ollehar Note Added: 69199
2022-04-22 20:12 ollehar Note Added: 69203
2022-04-22 20:12 ollehar File Added: mandatory.mp4
2022-04-23 07:59 tammo Note Added: 69205
2022-04-23 08:38 tammo Note Added: 69206
2022-04-23 08:38 tammo File Added: pp.png
2022-04-23 10:01 DenisChenu Note Added: 69207
2022-04-23 10:02 DenisChenu Note Edited: 69207
2022-04-23 12:08 ollehar Note Added: 69208
2022-04-23 12:09 ollehar Note Added: 69209
2022-04-23 13:03 ollehar Note Edited: 69208
2022-04-24 11:47 DenisChenu Note Added: 69213
2022-04-24 13:16 ollehar Note Added: 69214
2022-04-24 18:32 DenisChenu Note Added: 69215
2022-04-24 21:41 ollehar Note Added: 69216
2022-04-25 07:42 DenisChenu Note Added: 69217
2022-04-26 23:21 ollehar Note Added: 69257
2022-04-28 23:46 ollehar Note Added: 69296
2022-04-28 23:56 ollehar Note Edited: 69296
2022-04-28 23:59 ollehar Note Edited: 69296
2022-04-29 00:02 ollehar Note Edited: 69296
2022-04-29 00:05 ollehar Note Added: 69297
2022-04-29 00:05 ollehar File Added: em1.png
2022-04-29 00:05 ollehar File Added: em2.png
2022-04-29 08:47 DenisChenu Note Added: 69299
2022-04-29 09:00 DenisChenu Note Added: 69300
2022-04-29 09:14 ollehar Note Added: 69301
2022-04-29 09:15 DenisChenu Note Added: 69302
2022-04-29 09:25 ollehar Note Added: 69303
2022-04-29 18:29 ollehar Note Added: 69307
2022-04-29 18:30 DenisChenu Note Added: 69308
2022-04-29 18:38 ollehar Note Added: 69309
2022-04-29 18:54 DenisChenu Note Added: 69310
2022-04-29 20:14 ollehar Note Added: 69312
2022-04-29 20:14 ollehar File Added: p_massaction_ls3_pic1.png
2022-04-29 20:55 ollehar Note Added: 69313
2022-04-29 20:55 ollehar File Added: qt.png
2022-04-30 00:03 ollehar Note Added: 69316
2022-04-30 16:12 DenisChenu Note Added: 69320
2022-04-30 17:43 ollehar Note Added: 69321
2022-05-01 22:31 ollehar Note Added: 69323
2022-05-01 22:32 ollehar Note Edited: 69323
2022-05-02 20:02 ollehar Note Added: 69354
2022-05-02 20:05 ollehar Note Edited: 69354
2022-05-02 20:12 ollehar Note Added: 69355
2022-05-02 20:12 ollehar File Added: exprtest.mp4
2022-05-02 20:15 ollehar Note Edited: 69355
2022-05-02 20:16 ollehar Note Edited: 69355
2022-05-02 20:46 ollehar Note Added: 69356
2022-05-02 20:46 ollehar File Added: topbuttons.png
2022-05-02 20:51 ollehar Note Edited: 69356
2022-05-02 21:13 ollehar Note Added: 69358
2022-05-02 21:13 ollehar File Added: leftmenu.png
2022-05-02 21:47 ollehar Note Added: 69363
2022-05-02 21:47 ollehar File Added: bigbuttons.png
2022-05-02 21:56 ollehar Note Added: 69364
2022-05-02 21:56 ollehar File Added: buttomleftsep.png
2022-05-04 21:24 ollehar Note Added: 69402
2022-05-04 21:34 jelo Note Added: 69403
2022-05-04 21:39 ollehar Note Added: 69404
2022-05-04 22:15 Mazi Note Added: 69405
2022-05-04 22:21 ollehar Note Added: 69406
2022-05-04 22:44 Mazi Note Added: 69407
2022-05-04 22:51 ollehar Note Added: 69408
2022-05-04 22:59 holch Note Added: 69409
2022-05-04 22:59 holch Bug heat 10 => 12
2022-05-04 23:00 ollehar Note Added: 69410
2022-05-04 23:53 ollehar Note Added: 69411
2022-05-04 23:59 ollehar Note Edited: 69411
2022-05-04 23:59 ollehar Note Edited: 69411
2022-05-09 21:55 ollehar Note Added: 69532
2022-05-10 08:59 Mazi Note Added: 69534
2022-05-10 10:09 ollehar Note Added: 69536
2022-05-10 22:08 Mazi Note Added: 69558
2022-05-11 00:13 jelo Note Added: 69560
2022-05-11 11:07 ollehar Note Added: 69565
2022-05-11 22:40 ollehar Note Added: 69595
2022-05-12 08:59 tammo Note Added: 69596
2022-05-12 09:05 DenisChenu Note Added: 69597
2022-05-12 10:58 ollehar Note Added: 69598
2022-05-12 11:16 DenisChenu Note Added: 69599
2022-05-12 11:16 DenisChenu Note Edited: 69599
2022-05-12 11:22 ollehar Note Added: 69600
2022-05-12 15:36 DenisChenu Note Added: 69602
2022-05-12 15:42 DenisChenu Note Added: 69603
2022-05-12 15:42 DenisChenu File Added: Capture d’écran du 2022-05-12 15-41-53.png
2022-05-12 16:19 ollehar Note Added: 69604
2022-05-12 16:24 ollehar Note Added: 69605
2022-05-12 16:38 DenisChenu Note Added: 69606
2022-05-12 16:40 ollehar Note Added: 69607
2022-05-12 16:43 ollehar Note Added: 69608
2022-05-12 17:20 DenisChenu Note Added: 69609
2022-05-12 17:20 DenisChenu File Added: limesurvey_survey_749224.lss
2022-05-12 17:43 ollehar Note Added: 69610
2022-05-12 18:35 ollehar Note Added: 69612
2022-05-12 18:45 DenisChenu Note Added: 69613
2022-05-12 18:51 ollehar Note Added: 69615
2022-05-13 08:47 DenisChenu Note Added: 69621
2022-05-18 23:09 ollehar Note Added: 69812
2022-05-21 14:00 ollehar Note Added: 69951
2022-09-23 23:59 ollehar Note Added: 71929
2022-11-27 16:04 Mazi Note Added: 72903
2022-11-27 16:16 Mazi Note Added: 72904
2022-11-29 10:23 ollehar Note Added: 72928
2022-11-29 13:42 Mazi Note Added: 72930
2022-11-29 15:53 Mazi Note Added: 72935
2022-11-29 17:17 ollehar Note Added: 72936
2022-11-29 18:37 Mazi Note Added: 72938
2022-11-29 21:00 ollehar Note Added: 72939
2022-11-29 21:00 ollehar Note Edited: 72939
2022-11-30 09:00 DenisChenu Note Added: 72940
2022-12-01 14:43 ollehar Note Added: 72964
2022-12-01 14:43 ollehar Note Edited: 72964
2022-12-01 15:19 DenisChenu Note Added: 72968
2022-12-01 16:18 ollehar Note Added: 72969
2022-12-01 16:25 DenisChenu Note Added: 72970
2022-12-01 16:33 ollehar Note Added: 72971
2022-12-01 16:45 DenisChenu Note Added: 72972
2022-12-12 12:14 ollehar Note Added: 73057
2022-12-12 12:23 Mazi Note Added: 73062
2022-12-13 16:56 ollehar Note Added: 73095
2023-02-23 21:32 ollehar Note Added: 73943
2023-02-23 21:32 ollehar File Added: editsubq.png
2023-02-24 09:55 Mazi Note Added: 73944
2023-02-24 13:17 holch Note Added: 73946
2023-02-24 15:58 Mazi Note Added: 73947
2023-02-24 17:23 holch Note Added: 73948
2023-02-24 17:26 holch Note Added: 73949
2023-03-17 14:20 Mazi Note Added: 74163
2023-03-17 14:33 ollehar Note Added: 74164
2023-03-17 15:06 Mazi Note Added: 74170
2023-03-17 15:19 ollehar Note Added: 74172
2023-03-19 21:37 Mazi Note Added: 74192
2023-03-20 11:20 ollehar Note Added: 74202
2023-03-27 22:41 ollehar Note Added: 74290
2023-03-27 22:41 ollehar Story point estimate => 0
2023-03-27 22:41 ollehar Users affected % => 0
2023-03-27 22:47 ollehar Note Edited: 74290
2023-11-23 15:05 ollehar Status assigned => closed
2023-11-23 15:05 ollehar Resolution open => won't fix
2023-11-23 15:05 ollehar Note Added: 78681