Commit 13fc0686 by gradyward

Adds Label Listener

parent d329dbec
{% load i18n %}
{% 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">
<label class="openassessment_ai_example_label_field">
Example Name
......@@ -13,10 +13,11 @@
</div>
<div class="openassessment_ai_example_scored_rubric">
{% 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 }}
<select value="{{ criterion.option_selected }}" data-criterion="{{ criterion.name }}">
{% for option in criterion.options %}
<option value="">Not Selected</option>
<option class="openassessment_ai_example_criterion_option" data-criterion="{{ criterion.name }}" value="{{ option.name }}"
{% if option.name == criterion.option_selected %} selected {% endif %}>
{{ option.label }} - {{ option.points }} points
......
......@@ -39,6 +39,33 @@
{% for example in assessments.ai.examples %}
{% include 'openassessmentblock/edit/ai/oa_edit_ai_example.html' with example=example %}
{% 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>
</div>
</div>
......@@ -52,30 +79,6 @@
{% include 'openassessmentblock/edit/ai/oa_edit_ai_example_menu_item.html' with example=assessments.ai.template %}
</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>
{% endspaceless %}
......@@ -142,4 +142,5 @@ DEFAULT_EDITOR_ASSESSMENTS_ORDER = [
"student-training",
"peer-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 = {
}
$(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 = {
OpenAssessment.AIExample = function(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.criteria = $(".openassessment_ai_example_criterion_option", this.element);
};
......@@ -645,11 +652,21 @@ OpenAssessment.AIExample.prototype = {
$(this.element).attr(
'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() {},
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() {
var isValid = true;
......@@ -704,20 +721,18 @@ OpenAssessment.AIExampleMenuItem.prototype = {
addEventListeners: function() {
var exampleName = $(this.element).attr('data-example');
var view = this;
$(this.element).click(function() {
$('.openassessment_ai_example').each(function() {
if ($(this).attr('data-example') == exampleName){
$(this).removeClass('is--hidden');
} else {
$(this).addClass('is--hidden');
}
});
OpenAssessment.ItemUtilities.hideAllShowOne(
$(view.element).closest('#openassessment_ai_editor_menu_and_editor'),
'.openassessment_ai_editor_single_visibility',
'.openassessment_ai_example[data-example="' + exampleName + '"]'
);
});
},
removeHandler: function() {
this.partneredAIExample.remove();
$('.openassessment_ai_example["'+ $(this.element).attr('data-example') +'"]').remove();
$('.openassessment_ai_example[data-example="'+ $(this.element).attr('data-example') +'"]').remove();
},
getFieldValues: function () {},
......
......@@ -56,7 +56,7 @@ OpenAssessment.StudioView = function(runtime, element, server) {
// Initialize the rubric tab view
this.rubricView = new OpenAssessment.EditRubricView(
$("#oa_rubric_editor_wrapper", this.element).get(0),
new OpenAssessment.Notifier([
new OpenAssessment.Notifier([
new OpenAssessment.StudentTrainingListener()
])
);
......
......@@ -1247,7 +1247,7 @@
#openassessment_ai_example_menu{
width:100%;
overflow-y: scroll;
height: Calc(100% - 115px);
height: Calc(100% - 117px);
margin-bottom: 0;
border-bottom: 1px solid $edx-gray-l3;
}
......@@ -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{
width: Calc(100% - 250px);
overflow-y: scroll;
......@@ -1339,6 +1350,39 @@
position: absolute;
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{
height: 100%;
width: 100%;
......@@ -1347,6 +1391,7 @@
height: 100%;
width: 100%;
padding: 7.5px;
background-color: white;
}
}
......
......@@ -273,7 +273,7 @@ class StudioMixin(object):
example_based_module = self.get_assessment_module('example-based-assessment')
example_based_template = copy.deepcopy(student_training_template)
example_based_template['label'] = 'Unnamed Example'
example_based_template['label'] = 'New Example'
if example_based_module:
ai_examples = self._construct_scored_rubrics_for_examples(example_based_module['examples'])
......@@ -288,7 +288,9 @@ class StudioMixin(object):
'examples': serialize_examples_to_xml_str(example_based_assessment)
}
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
......
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