Commit 30fb3ee4 by Jillian Vogel Committed by Jonathan Piacenti

OC-1320 Added help text to zone align form field, and made the new text support i18n

parent a74d0850
...@@ -160,6 +160,7 @@ ...@@ -160,6 +160,7 @@
height: 128px; height: 128px;
} }
.xblock--drag-and-drop--editor .zones-form .zones-form-help,
.xblock--drag-and-drop--editor .target-image-form .target-image-form-help, .xblock--drag-and-drop--editor .target-image-form .target-image-form-help,
.xblock--drag-and-drop--editor .item-styles-form .item-styles-form-help { .xblock--drag-and-drop--editor .item-styles-form .item-styles-form-help {
margin-top: 5px; margin-top: 5px;
......
...@@ -14,6 +14,12 @@ function DragAndDropEditBlock(runtime, element, params) { ...@@ -14,6 +14,12 @@ function DragAndDropEditBlock(runtime, element, params) {
} }
return Number(value).toFixed(Number(value) == parseInt(value) ? 0 : 1); return Number(value).toFixed(Number(value) == parseInt(value) ? 0 : 1);
}); });
Handlebars.registerHelper('ifeq', function(v1, v2, options) {
if(v1 === v2) {
return options.fn(this);
}
return options.inverse(this);
});
var $element = $(element); var $element = $(element);
...@@ -23,7 +29,6 @@ function DragAndDropEditBlock(runtime, element, params) { ...@@ -23,7 +29,6 @@ function DragAndDropEditBlock(runtime, element, params) {
tpl: { tpl: {
init: function() { init: function() {
_fn.tpl = { _fn.tpl = {
zoneAlignDropdown: Handlebars.compile($("#zone-align-dropdown-tpl", element).html()),
zoneInput: Handlebars.compile($("#zone-input-tpl", element).html()), zoneInput: Handlebars.compile($("#zone-input-tpl", element).html()),
zoneElement: Handlebars.compile($("#zone-element-tpl", element).html()), zoneElement: Handlebars.compile($("#zone-element-tpl", element).html()),
zoneDropdown: Handlebars.compile($("#zone-dropdown-tpl", element).html()), zoneDropdown: Handlebars.compile($("#zone-dropdown-tpl", element).html()),
...@@ -241,8 +246,7 @@ function DragAndDropEditBlock(runtime, element, params) { ...@@ -241,8 +246,7 @@ function DragAndDropEditBlock(runtime, element, params) {
height: oldZone.height || 100, height: oldZone.height || 100,
x: oldZone.x || 0, x: oldZone.x || 0,
y: oldZone.y || 0, y: oldZone.y || 0,
align: oldZone.align || '', align: oldZone.align || ''
align_dropdown: _fn.build.form.createAlignDropdown(oldZone),
}; };
_fn.build.form.zone.zoneObjects.push(zoneObj); _fn.build.form.zone.zoneObjects.push(zoneObj);
...@@ -255,11 +259,9 @@ function DragAndDropEditBlock(runtime, element, params) { ...@@ -255,11 +259,9 @@ function DragAndDropEditBlock(runtime, element, params) {
_fn.build.$el.zones.form.append($zoneNode); _fn.build.$el.zones.form.append($zoneNode);
_fn.build.form.zone.enableDelete(); _fn.build.form.zone.enableDelete();
// Once form is built, clean out html from zoneObj
delete zoneObj['align_dropdown'];
// Add zone div to target // Add zone div to target
_fn.build.form.zone.renderZonesPreview(); _fn.build.form.zone.renderZonesPreview();
}, },
generateUID: function() { generateUID: function() {
// Generate a unique ID for a new zone. // Generate a unique ID for a new zone.
...@@ -321,7 +323,7 @@ function DragAndDropEditBlock(runtime, element, params) { ...@@ -321,7 +323,7 @@ function DragAndDropEditBlock(runtime, element, params) {
y_percent: (+zoneObj.y) / imgHeight * 100, y_percent: (+zoneObj.y) / imgHeight * 100,
width_percent: (+zoneObj.width) / imgWidth * 100, width_percent: (+zoneObj.width) / imgWidth * 100,
height_percent: (+zoneObj.height) / imgHeight * 100, height_percent: (+zoneObj.height) / imgHeight * 100,
align: zoneObj.align, align: zoneObj.align
}) })
); );
}); });
...@@ -339,11 +341,12 @@ function DragAndDropEditBlock(runtime, element, params) { ...@@ -339,11 +341,12 @@ function DragAndDropEditBlock(runtime, element, params) {
}); });
return zoneNames; return zoneNames;
}, },
getZoneAlignNames: function() { getZoneAlignNames: function() {
var alignNames = ["", "left", "center", "right"]; var alignNames = ["", "left", "center", "right"];
return alignNames; return alignNames;
}, },
changedInputHandler: function(ev) { changedInputHandler: function(ev) {
// Called when any of the inputs have changed. // Called when any of the inputs have changed.
var $changedInput = $(ev.currentTarget); var $changedInput = $(ev.currentTarget);
...@@ -393,20 +396,6 @@ function DragAndDropEditBlock(runtime, element, params) { ...@@ -393,20 +396,6 @@ function DragAndDropEditBlock(runtime, element, params) {
var html = dropdown.join(''); var html = dropdown.join('');
return new Handlebars.SafeString(html); return new Handlebars.SafeString(html);
}, },
createAlignDropdown: function(selected) {
var tpl = _fn.tpl.zoneAlignDropdown,
dropdown = [],
html,
dropdown_items = _fn.build.form.zone.getZoneAlignNames();
for (var i=0; i<dropdown_items.length; i++) {
var is_sel = (dropdown_items[i] == selected['align']) ? 'selected' : '';
dropdown.push(tpl({ value: dropdown_items[i], selected: is_sel }));
}
html = dropdown.join('');
return new Handlebars.SafeString(html);
},
feedback: function($form) { feedback: function($form) {
_fn.data.feedback = { _fn.data.feedback = {
start: $form.find('#intro-feedback').val(), start: $form.find('#intro-feedback').val(),
......
...@@ -9,10 +9,6 @@ ...@@ -9,10 +9,6 @@
</div> </div>
</script> </script>
<script id="zone-align-dropdown-tpl" type="text/html">
<option value="{{ value }}" {{ selected }}>{{ value }}</option>
</script>
<script id="zone-input-tpl" type="text/html"> <script id="zone-input-tpl" type="text/html">
<div class="zone-row" data-uid="{{zone.uid}}"> <div class="zone-row" data-uid="{{zone.uid}}">
<!-- uid values from old versions of the block may contain spaces and other characters, so we use 'index' as an alternate unique ID here. --> <!-- uid values from old versions of the block may contain spaces and other characters, so we use 'index' as an alternate unique ID here. -->
...@@ -56,9 +52,32 @@ ...@@ -56,9 +52,32 @@
value="{{ zone.y }}" /> value="{{ zone.y }}" />
</div> </div>
<div class="alignment"> <div class="alignment">
<label for="zone-{{index}}-align">align</label> <label for="zone-{{index}}-align">
{{i18n "Alignment"}}
</label>
<select id="zone-{{index}}-align" <select id="zone-{{index}}-align"
class="align-select">{{ align_dropdown }}</select> class="align-select"
aria-describedby="zone-align-description" >
<option value=""
{{#ifeq align "" }}selected{{/ifeq}}>
{{i18n "not aligned"}}
</option>
<option value="left"
{{#ifeq align "left" }}selected{{/ifeq}}>
{{i18n "left aligned" }}
</option>
<option value="center"
{{#ifeq align "center" }}selected{{/ifeq}}>
{{i18n "center aligned" }}
</option>
<option value="right"
{{#ifeq align "right" }}selected{{/ifeq}}>
{{i18n "right aligned" }}
</option>
</select>
<div id="zone-align-description" class="zones-form-help">
{{i18n "Align dropped items to the left, center, or right. Default is no alignment."}}
</div>
</div> </div>
</div> </div>
</script> </script>
......
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