Currently, Automated Activities that are displayed as a Task List are always rendered as a list of actions to be completed when the user presses the Activity Evaluation button. This is even the case when the "Show Output To User" checkbox is not selected. It would make sense that, if we don't want to have feedback displayed to the user then we might not want the item to even display in the list. A specific scenario would be when including a standardized "Debug" custom script that is intended to show specific details on the Lab Instance Information page but is not useful for the user (I.E. duration times, lab details, O/S details, status information...)
Who would most benefit from this idea? | Lab Developers or Lab Authors |
What is the problem you are trying to solve?
Ability to capture lab metrics and debug information throughout the duration of the lab on a more fine-grained level |
Thanks for taking a minute to send along this suggestion! Our Product Group has given this an initial review and assigned this a status of "Future Consideration." This status mean this Idea is not yet on our roadmap, but will be part of our normal prioritization processes.
If you have additional context or would like to generate more demand, feel free to edit your original post, add a comment, and/or invite your peers to upvote your Idea.
The idea behind this request is to:
Allow separate scripts to be included in a Task List so that only 1 button is presented to run all scripts
Allow a script in the Task List to be completely hidden from the user so that they don't know that it exists
Allow scripts to be written as single unique, repeatable entities without the need to "bundle" multiple script actions into a one compound script
Two initial use cases that may exist for this include:
Allowing the inclusion of a "debug/info" script to gather information about the lab environment and display it to the Lab Instances page but not in the User's IDLx window
Allow the inclusion of "action" scripts that may reconfigure the environment based on the results of another script within the Task list (i.e.: modifying the environment at the conclusion of 1 exercise and prior to the next.
"Hiding" the script from the user should include not displaying the "Text" of the script in the Task List. The user does not need to know the script is there and they don't need to know whether it is run or not.
A sample Lab Profile (https://labondemand.com/LabProfile/129441) has been set up to illustrate the issue. In this lab there are 4 scripts. The first 2 SHOULD display the feedback and therefore SHOULD also display the "Text" of the script. The scripts have the following characteristics:
All Scripts are part of a Task List
All Scripts have a positive feedback message of "POSITIVE"
All Scripts have a negative feedback message of "NEGATIVE"
All Scripts will "Echo" a message to the screen when run
i.e.: This script shows Positive/Negative Feedback
All Scripts have "Text" indicating the numerical test and whether the script should be shown or hidden
NOTE: The "Text" field is mandatory and can not be hidden
Scripts 1 & 2 have the "Show Output to User" checkbox selected
Scripts 3 & 4 have the "Show Output to User" checkbox UN-selected
When the Lab is launched I would like to see only the "Text" for scripts 1 and 2 in the list but the "Text" for all 4 scripts is actually included (see "Before Running Script Task List.png").
When run, scripts 1 and 2 display both the "Echoed" text from within the script as well as the Correct/Incorrect message indicated by the return value of the script. Scripts 3 and 4 do not echo back the text from within the script but DO display the Correct/Incorrect message indicated by the return value of the script (see "After Running Script Task List.png").
If the user wishes to hide the script from the Task List then there should be NO visible footprint in the IDLx. They should not see the following elements in the instruction pane:
The value of the "Text" field
The value of the "(In)Correct" fields
The script could still return a True/False value that the developer may want to use to determine the "Outcome" but there should be no feedback to the user because of this.
A Checkbox in the location of the script
The user SHOULD see:
Any message(s) that have been explicitly "Echoed" to the Instruction pane from within the script.
This would allow any error handling to return meaningful feedback when necessary
When the provided sample Lab Profile is launched it would be preferable for ONLY the "Text" for script 1 and 2 to be present in the displayed list and when the "Check" button is pressed only the "Correct/Incorrect" feedback from scripts 1 and 2 are shown. Scripts 3 and 4 should ONLY show any feedback if an error condition is trapped "Echoed" to the instruction window from within the script.
Thank you for the addition feedback here. This is a good idea to further simplify the users experience.
What about being able to call another script from a script? Is that worth considering?
@lab.Activity(MyActivity).Script(2)
I think that a separate output stream that logs directly to the lab instance page without showing the user the output would solve half of this issue. (The other half being concealing the fact that it's running in the first place.)
I ran into the same issue recently. I wanted an Activity to run that fired off some scheduled tasks that created the necessary output I could use in subsequent scoring scripts. I did not want to show this activity to the students. Now, I could have just buried the commands to fire off the scheduled tasks in another activity script that I did display to users. However, that approach feels like both a hack and a workaround. The functionality that Wayne is asking for is the way to go.
Hi Eric. Perhaps we should set up a quick meeting to discuss this further.
Wayne, if you run the scripts without a task you can link the scripts together. If this is not the use case let us know so we can setup a meeting to discuss further.
Thank you for clarifying this idea.
The intent is to hide the fact that one, or more, scripts in an Automated Activity group are being run as well as the feedback generated by that script. For instance, the user does not need to know that there is Debug information about their instance being gathered. When the "Display Scripts as Task List" option is selected then the lab developer MUST enter a Text title for the script (though no error message is displayed if they don't) and all of the scripts in the Automated Activity list will be displayed to the User.
1) Create an Automated Activity and set it to Display Scripts as Task List (See AA_TaskList.png)
2) Create multiple scripts attached to the Automated Activity and Disable the output to the user (See AA_NoOutput.png)
3) The Instruction panel will display all the scripts that will be run (See AA_AllScripts.png).
In the scenario I have in mind "Script 2" is actually a standard Debug Information script and there is no need for the user to even know that it is being run.
If the intent is to show only the result of an activity in the Lab Instance Details and not to the user, then this can be done currently.
Example below is a simple test if a folder exists and only tract that in the Lab Instance Details:
Create a simple activity as follows
Insert Tag into instructions
Output shown to user (Nothing other then the text you want displayed
Check Lab Instance details
Summary:
The "Show Output to User" only controls the output from within the actual script itself, This is where you would put sufficient output for debug information that needs to be listed on Instance Details.
The Feedback text is not controlled by this flag. To make sure the user does not see any output "Do not enter any text in the feedback textboxes"
NOTE: If this solution does not address your needs please attach a few screenshots and more details to further clarify your idea.