Skip to content

Commit

Permalink
Added better visual feedback on required languages
Browse files Browse the repository at this point in the history
In settings panel. This, again, is a port of code from multilingual text box.

Fixes #5
  • Loading branch information
nitriques committed Mar 12, 2016
1 parent 221d948 commit a61d287
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 0 deletions.
55 changes: 55 additions & 0 deletions assets/multilingual_upload_field.settings.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
(function ($, undefined) {

'use strict';

if (!!Symphony.Extensions.MultilingualUploadField) {
return;
}
Symphony.Extensions.MultilingualUploadField = true;

// from backend.views.js
var change = function (e) {
var selectbox = $(this);
var parent = selectbox.parents('.instance');
var headline = parent.find('.frame-header h4');
var values = selectbox.find(':selected');
var span = headline.find('.required');

if(!!values.length) {
var langs = [];
values.each(function (index, elem) {
var text = $(this).text();
langs.push(text.split(' ||')[0]);
if (index < values.length - 2) {
langs.push(', ');
} else if (index < values.length - 1) {
langs.push(' and ');
}
});

if (!span.length) {
span = $('<span />', {
class: 'required'
}).appendTo(headline);
}

span.text(
'— ' + langs.join('') + ' ' +
Symphony.Language.get(langs.length > 1 ? 'are' : 'is') + ' ' +
Symphony.Language.get('required')
);
}

// Is not required
else {
headline.find('.required').remove();
}
};

$(function () {
$('.field-multilingual_upload.instance select[name*="[required_languages]"]')
.on('change', change)
.trigger('change');
});

})(jQuery);
15 changes: 15 additions & 0 deletions extension.driver.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class Extension_Multilingual_Upload_Field extends Extension
const FIELD_TABLE = 'tbl_fields_multilingual_upload';

protected static $assets_loaded = false;
protected static $assets_settings_loaded = false;

/*------------------------------------------------------------------------------------------------*/
/* Installation */
Expand Down Expand Up @@ -220,4 +221,18 @@ public static function appendAssets(){
$page->addScriptToHead(URL.'/extensions/'.MUF_GROUP.'/assets/'.MUF_GROUP.'.publish.js', null, false);
}
}

public static function appendSettingsAssets(){
if( self::$assets_settings_loaded === false
&& class_exists('Administration')
&& Administration::instance() instanceof Administration
&& Administration::instance()->Page instanceof HTMLPage ){

self::$assets_settings_loaded = true;

$page = Administration::instance()->Page;

$page->addScriptToHead(URL.'/extensions/'.MUF_GROUP.'/assets/'.MUF_GROUP.'.settings.js', null, false);
}
}
}
2 changes: 2 additions & 0 deletions fields/field.multilingual_upload.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@ public function get($field = null)

public function displaySettingsPanel(XMLElement &$wrapper, $errors = null)
{
Extension_Multilingual_Upload_Field::appendSettingsAssets();

parent::displaySettingsPanel($wrapper, $errors);

$last_div_pos = $wrapper->getNumberOfChildren() - 1;
Expand Down

0 comments on commit a61d287

Please sign in to comment.