Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dev: little hack, add a .dropdown-menu .dropdown-sub-menu to surclass .dropdown-menu .dropdown-menu Dev: can use .dropdown-menu .dropdown-menu in css , but more clear with a new class
- Loading branch information
Showing
2 changed files
with
27 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unrelated question: How come some question types has timer, some don't? Seems like only text and list questions have timer (using
return_timer_script
in qanda).c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, surely due to limited script (yo set 'readonly') at creation of the system. And surely the dev want it only for this question type (if i remind : we only have 'short text' during some month).
https://github.com/LimeSurvey/LimeSurvey/blob/master/application/helpers/questionHelper.php#L1083
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we need a new concept, something like "question extension", for stuff like timer, since it's not a single attribute, but rather a "package" of attributes that must be defined together.
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I already said a lot : it's easy to remove timer from core attribute and create a new plugin.
In fact : event newQuestionAttributes happen only one time : the question attribute is more something like question extensions :)
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, but too many plugins can make the system confusing for users. If we have a question manager in the future, we can show two tabs: question types/modules, and question "extensions" or whatever to call it.
Edit: Or maybe rename plugin manager to "extension manager", and let it include plugins, question modules and question extensions.
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 for the Edit . And for tabs : think if we use "own tab name" in question attribute : it create a new tab name => already fixed (for survey manager)
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that would be nice, too. I will check how it works.
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In fact : i'm sure it's this behaviour ;)
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Timer is not related to the object question. It's related to the object navigation.
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe , but currently it's a Question Attribute.
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
that's why it's a conception bug. Timer applies to a question only when navigation is set to "question by question". When moving to "group by group" or to "all in one" it makes no sense.
That's why we need a real navigation component, handling everything related to the navigation, like timer.
Today, the Expression Manager handle two tasks:
When we'll create the question classes, and when question object will handle the question validation, the "lefting" part of the EM will be indeed the navigation component, which will include among other things timer.
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, i'm not OK about this sentence :
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and what happen if 3 questions in a group has 3 timers with different values?
The fact that in 2.x timer works using tricks doesn't prove that timer is at the right place. In LimeSurvey, not everything is questions: Timer is related to navigation, no to question. It could even be a data attribute attached to the submit button.
That's why before doing a huge refactoring of LimeSurvey, we must first agree on all the object that composed the application, to clearly separate them in different components.
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then 2 different timer needed : right ?
right ?
c35c06f
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only one timer, related to navigation.
Then, if a question should have a particular behavior based on navigation, the question should be able to read the state of timer to do what it want.
Each object is in charge of its own state: that the most basic and most important part of object design.
Replace timer by a traffic light and questions by cars: would you say that each car should have its own traffic light to be able to interact with it?