Commit 13fc0686 by gradyward

Adds Label Listener

parent d329dbec
{% load i18n %} {% load i18n %}
{% spaceless %} {% spaceless %}
<li class="openassessment_ai_example" data-example="{{ example.name }}"> <li class="openassessment_ai_example openassessment_ai_editor_single_visibility is--hidden" data-example="{{ example.name }}">
<div class="openassessment_ai_example_settings"> <div class="openassessment_ai_example_settings">
<label class="openassessment_ai_example_label_field"> <label class="openassessment_ai_example_label_field">
Example Name Example Name
...@@ -13,10 +13,11 @@ ...@@ -13,10 +13,11 @@
</div> </div>
<div class="openassessment_ai_example_scored_rubric"> <div class="openassessment_ai_example_scored_rubric">
{% for criterion in example.criteria %} {% for criterion in example.criteria %}
<div class="openassessment_ai_example_scored_rubric_criterion"> <div class="openassessment_ai_example_scored_rubric_criterion" data-criterion=="{{ criterion.name }}">
<label> {{ criterion.label }} <label> {{ criterion.label }}
<select value="{{ criterion.option_selected }}" data-criterion="{{ criterion.name }}"> <select value="{{ criterion.option_selected }}" data-criterion="{{ criterion.name }}">
{% for option in criterion.options %} {% for option in criterion.options %}
<option value="">Not Selected</option>
<option class="openassessment_ai_example_criterion_option" data-criterion="{{ criterion.name }}" value="{{ option.name }}" <option class="openassessment_ai_example_criterion_option" data-criterion="{{ criterion.name }}" value="{{ option.name }}"
{% if option.name == criterion.option_selected %} selected {% endif %}> {% if option.name == criterion.option_selected %} selected {% endif %}>
{{ option.label }} - {{ option.points }} points {{ option.label }} - {{ option.points }} points
......
...@@ -39,6 +39,33 @@ ...@@ -39,6 +39,33 @@
{% for example in assessments.ai.examples %} {% for example in assessments.ai.examples %}
{% include 'openassessmentblock/edit/ai/oa_edit_ai_example.html' with example=example %} {% include 'openassessmentblock/edit/ai/oa_edit_ai_example.html' with example=example %}
{% endfor %} {% endfor %}
<li id="openassessment_ai_editor_import_xml" class="is--hidden openassessment_ai_editor_single_visibility">
<h2 id="openassessment_ai_editor_sub_modal_header"> Upload from XML file </h2>
<div id="openassessment_ai_editor_sub_modal_instructions">
<p>Upload your file using this selector. Lorem ipsum dolce decorum est. Lorem ipsum dolce decorum est. Lorem ipsum dolce decorum est. Lorem ipsum dolce decorum est. Lorem ipsum dolce decorum est. Lorem ipsum dolce decorum est. Lorem ipsum dolce decorum est.</p>
</div>
<div id="openassessment_ai_editor_sub_modal_file_upload">
<label>Upload XML File
<input type="file">
</label>
</div>
<ol class="openassessment_ai_editor_file_status">
<li class="openassessment_ai_editor_file_status_importing">Import File</li>
<li class="openassessment_ai_editor_file_status_importing">Parse File</li>
<li class="openassessment_ai_editor_file_status_importing">Verify Rubric</li>
<li class="openassessment_ai_editor_file_status_importing">Ready for Import</li>
</ol>
<div id="openassessment_ai_editor_sub_modal_buttons">
<div id="openassessment_ai_editor_sub_modal_save">Confirm</div>
<div id="openassessment_ai_editor_sub_modal_cancel">Cancel</div>
</div>
</li>
<li id="openassessment_ai_example_editor_background" class="openassessment_ai_editor_single_visibility">
<h1>No Example Selected</h1>
<p>Select an example at the side to edit it in this space. Alternatively, you can create new training examples or import them from an XML document.</p>
</li>
</ol> </ol>
</div> </div>
</div> </div>
...@@ -52,30 +79,6 @@ ...@@ -52,30 +79,6 @@
{% include 'openassessmentblock/edit/ai/oa_edit_ai_example_menu_item.html' with example=assessments.ai.template %} {% include 'openassessmentblock/edit/ai/oa_edit_ai_example_menu_item.html' with example=assessments.ai.template %}
</ol> </ol>
<!--
<div id="openassessment_ai_editor_import_sub_modal" class="is--hidden">
<div id="openassessment_ai_editor_sub_modal_header">
</div>
<div id="openassessment_ai_editor_sub_modal_instructions">
</div>
<div id="openassessment_ai_editor_sub_modal_file_upload">
</div>
<div id="openassessment_ai_editor_sub_modal_file_status">
</div>
<div id="openassessment_ai_editor_sub_modal_buttons">
<div id="openassessment_ai_editor_sub_modal_save">
Save
</div>
<div id="openassessment_ai_editor_sub_modal_cancel">
Cancel
</div>
</div>
</div>
-->
</div> </div>
{% endspaceless %} {% endspaceless %}
...@@ -142,4 +142,5 @@ DEFAULT_EDITOR_ASSESSMENTS_ORDER = [ ...@@ -142,4 +142,5 @@ DEFAULT_EDITOR_ASSESSMENTS_ORDER = [
"student-training", "student-training",
"peer-assessment", "peer-assessment",
"self-assessment", "self-assessment",
"example-based-assessment",
] ]
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -61,6 +61,13 @@ OpenAssessment.ItemUtilities = { ...@@ -61,6 +61,13 @@ OpenAssessment.ItemUtilities = {
} }
$(element).text(finalLabel); $(element).text(finalLabel);
},
hideAllShowOne: function(element, selectorToHide, selectorToShow){
$(selectorToHide, element).each(function() {
$(this).addClass('is--hidden');
});
$(selectorToShow).removeClass('is--hidden');
} }
}; };
...@@ -605,7 +612,7 @@ OpenAssessment.TrainingExample.prototype = { ...@@ -605,7 +612,7 @@ OpenAssessment.TrainingExample.prototype = {
OpenAssessment.AIExample = function(element){ OpenAssessment.AIExample = function(element){
this.element = element; this.element = element;
this.labelSel = $('.openassessment_ai_example_label_field', this.element); this.labelSel = $('.openassessment_ai_example_label_field', this.element).find('input').first();
this.answer = $('.openassessment_ai_example_essay', this.element).first(); this.answer = $('.openassessment_ai_example_essay', this.element).first();
this.criteria = $(".openassessment_ai_example_criterion_option", this.element); this.criteria = $(".openassessment_ai_example_criterion_option", this.element);
}; };
...@@ -645,11 +652,21 @@ OpenAssessment.AIExample.prototype = { ...@@ -645,11 +652,21 @@ OpenAssessment.AIExample.prototype = {
$(this.element).attr( $(this.element).attr(
'data-example', OpenAssessment.ItemUtilities.createUniqueName(this.element, 'data-example') 'data-example', OpenAssessment.ItemUtilities.createUniqueName(this.element, 'data-example')
); );
this.addEventListeners();
}, },
addEventListeners: function() {}, addEventListeners: function() {
// Install a focus out handler for container changes.
$(this.labelSel).focusout($.proxy(this.updateHandler, this));
},
removeHandler: function() {}, removeHandler: function() {},
updateHandler: function() {}, updateHandler: function() {
var view = this;
$(".openassessment_ai_example_menu_item[data-example='"+ $(this.element).attr('data-example') +"']")
.find('h2').first()
.text($(view.labelSel).val());
},
validate: function() { validate: function() {
var isValid = true; var isValid = true;
...@@ -704,20 +721,18 @@ OpenAssessment.AIExampleMenuItem.prototype = { ...@@ -704,20 +721,18 @@ OpenAssessment.AIExampleMenuItem.prototype = {
addEventListeners: function() { addEventListeners: function() {
var exampleName = $(this.element).attr('data-example'); var exampleName = $(this.element).attr('data-example');
var view = this;
$(this.element).click(function() { $(this.element).click(function() {
$('.openassessment_ai_example').each(function() { OpenAssessment.ItemUtilities.hideAllShowOne(
if ($(this).attr('data-example') == exampleName){ $(view.element).closest('#openassessment_ai_editor_menu_and_editor'),
$(this).removeClass('is--hidden'); '.openassessment_ai_editor_single_visibility',
} else { '.openassessment_ai_example[data-example="' + exampleName + '"]'
$(this).addClass('is--hidden'); );
}
});
}); });
}, },
removeHandler: function() { removeHandler: function() {
this.partneredAIExample.remove(); $('.openassessment_ai_example[data-example="'+ $(this.element).attr('data-example') +'"]').remove();
$('.openassessment_ai_example["'+ $(this.element).attr('data-example') +'"]').remove();
}, },
getFieldValues: function () {}, getFieldValues: function () {},
......
...@@ -56,7 +56,7 @@ OpenAssessment.StudioView = function(runtime, element, server) { ...@@ -56,7 +56,7 @@ OpenAssessment.StudioView = function(runtime, element, server) {
// Initialize the rubric tab view // Initialize the rubric tab view
this.rubricView = new OpenAssessment.EditRubricView( this.rubricView = new OpenAssessment.EditRubricView(
$("#oa_rubric_editor_wrapper", this.element).get(0), $("#oa_rubric_editor_wrapper", this.element).get(0),
new OpenAssessment.Notifier([ new OpenAssessment.Notifier([
new OpenAssessment.StudentTrainingListener() new OpenAssessment.StudentTrainingListener()
]) ])
); );
......
...@@ -1247,7 +1247,7 @@ ...@@ -1247,7 +1247,7 @@
#openassessment_ai_example_menu{ #openassessment_ai_example_menu{
width:100%; width:100%;
overflow-y: scroll; overflow-y: scroll;
height: Calc(100% - 115px); height: Calc(100% - 117px);
margin-bottom: 0; margin-bottom: 0;
border-bottom: 1px solid $edx-gray-l3; border-bottom: 1px solid $edx-gray-l3;
} }
...@@ -1331,6 +1331,17 @@ ...@@ -1331,6 +1331,17 @@
} }
#openassessment_ai_example_editor_background{
height: 100%;
width: 100%;
padding: 25% 40px 0 40px;
position: absolute;
h1{
text-align: center;
padding: 10px;
}
}
#openassessment_ai_example_editor{ #openassessment_ai_example_editor{
width: Calc(100% - 250px); width: Calc(100% - 250px);
overflow-y: scroll; overflow-y: scroll;
...@@ -1339,6 +1350,39 @@ ...@@ -1339,6 +1350,39 @@
position: absolute; position: absolute;
right: 0; right: 0;
#openassessment_ai_editor_import_xml{
height: 100%;
width: 100%;
padding: 10px;
#openassessment_ai_editor_sub_modal_instructions{
font-size: 80%;
}
#openassessment_ai_editor_file_upload{
text-align: center
input{
padding-left: 40px;
}
}
#openassessment_ai_editor_file_status{
padding-left: 35%;
padding-top: 20px;
li:before{
font-family: FontAwesome;
content: '\f021';
display: inline-block;
}
}
#openassessment_ai_editor_sub_modal_buttons{
div{
display: inline-block;
padding: 5px 10px;
border-radius: 5px;
margin: 10px;
}
}
}
#openassessment_ai_examples{ #openassessment_ai_examples{
height: 100%; height: 100%;
width: 100%; width: 100%;
...@@ -1347,6 +1391,7 @@ ...@@ -1347,6 +1391,7 @@
height: 100%; height: 100%;
width: 100%; width: 100%;
padding: 7.5px; padding: 7.5px;
background-color: white;
} }
} }
......
...@@ -273,7 +273,7 @@ class StudioMixin(object): ...@@ -273,7 +273,7 @@ class StudioMixin(object):
example_based_module = self.get_assessment_module('example-based-assessment') example_based_module = self.get_assessment_module('example-based-assessment')
example_based_template = copy.deepcopy(student_training_template) example_based_template = copy.deepcopy(student_training_template)
example_based_template['label'] = 'Unnamed Example' example_based_template['label'] = 'New Example'
if example_based_module: if example_based_module:
ai_examples = self._construct_scored_rubrics_for_examples(example_based_module['examples']) ai_examples = self._construct_scored_rubrics_for_examples(example_based_module['examples'])
...@@ -288,7 +288,9 @@ class StudioMixin(object): ...@@ -288,7 +288,9 @@ class StudioMixin(object):
'examples': serialize_examples_to_xml_str(example_based_assessment) 'examples': serialize_examples_to_xml_str(example_based_assessment)
} }
else: else:
assessments['ai'] = {'examples': [example_based_template], 'template': example_based_template} default_example_list = copy.deepcopy(example_based_template)
default_example_list['name'] = 0
assessments['ai'] = {'examples': [default_example_list], 'template': example_based_template}
return assessments return assessments
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment