|
@@ -1286,7 +1286,9 @@ class ExtraField extends Model
|
|
|
|
|
|
$tagsSelect = $form->addSelect(
|
|
|
"extra_{$field_details['variable']}",
|
|
|
- $field_details['display_text']
|
|
|
+ $field_details['display_text'],
|
|
|
+ [],
|
|
|
+ ['style' => 'width: 100%;']
|
|
|
);
|
|
|
|
|
|
if ($useTagAsSelect == false) {
|
|
@@ -1296,6 +1298,8 @@ class ExtraField extends Model
|
|
|
$tagsSelect->setAttribute('id', "extra_{$field_details['variable']}");
|
|
|
$tagsSelect->setMultiple(true);
|
|
|
|
|
|
+ $selectedOptions = [];
|
|
|
+
|
|
|
if ($this->type === 'user') {
|
|
|
// The magic should be here
|
|
|
$user_tags = UserManager::get_user_tags($itemId, $field_details['id']);
|
|
@@ -1304,9 +1308,10 @@ class ExtraField extends Model
|
|
|
foreach ($user_tags as $tag) {
|
|
|
$tagsSelect->addOption(
|
|
|
$tag['tag'],
|
|
|
- $tag['tag'],
|
|
|
- ['selected' => 'selected', 'class' => 'selected']
|
|
|
+ $tag['tag']
|
|
|
);
|
|
|
+
|
|
|
+ $selectedOptions[] = $tag['tag'];
|
|
|
}
|
|
|
}
|
|
|
$url = api_get_path(WEB_AJAX_PATH).'user_manager.ajax.php';
|
|
@@ -1319,7 +1324,9 @@ class ExtraField extends Model
|
|
|
'fieldId' => $field_id,
|
|
|
'itemId' => $itemId
|
|
|
]);
|
|
|
+ /** @var \Chamilo\CoreBundle\Entity\ExtraFieldRelTag $fieldTag */
|
|
|
foreach ($fieldTags as $fieldTag) {
|
|
|
+ /** @var \Chamilo\CoreBundle\Entity\Tag $tag */
|
|
|
$tag = $em->find('ChamiloCoreBundle:Tag', $fieldTag->getTagId());
|
|
|
|
|
|
if (empty($tag)) {
|
|
@@ -1327,9 +1334,9 @@ class ExtraField extends Model
|
|
|
}
|
|
|
$tagsSelect->addOption(
|
|
|
$tag->getTag(),
|
|
|
- $tag->getTag(),
|
|
|
- ['selected' => 'selected', 'class' => 'selected']
|
|
|
+ $tag->getTag()
|
|
|
);
|
|
|
+ $selectedOptions[] = $tag->getTag();
|
|
|
}
|
|
|
|
|
|
if ($useTagAsSelect) {
|
|
@@ -1366,22 +1373,27 @@ class ExtraField extends Model
|
|
|
$url = api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php';
|
|
|
}
|
|
|
|
|
|
- if ($useTagAsSelect == false) {
|
|
|
- $complete_text = get_lang('StartToType');
|
|
|
- //if cache is set to true the jquery will be called 1 time
|
|
|
+ $form->setDefaults([
|
|
|
+ 'extra_'.$field_details['variable'] => $selectedOptions
|
|
|
+ ]);
|
|
|
|
|
|
- $jquery_ready_content .= <<<EOF
|
|
|
- $("#extra_$variable").fcbkcomplete({
|
|
|
- json_url: "$url?a=search_tags&field_id=$field_id&type={$this->type}",
|
|
|
+ if ($useTagAsSelect == false) {
|
|
|
+ $jquery_ready_content .= "
|
|
|
+ $('#extra_$variable').select2({
|
|
|
+ ajax: {
|
|
|
+ url: '$url?a=search_tags&field_id=$field_id&type={$this->type}',
|
|
|
+ processResults: function (data) {
|
|
|
+ return {
|
|
|
+ results: data.items
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
cache: false,
|
|
|
- filter_case: true,
|
|
|
- filter_hide: true,
|
|
|
- complete_text:"$complete_text",
|
|
|
- firstselected: false,
|
|
|
- filter_selected: true,
|
|
|
- newel: true
|
|
|
+ tags: true,
|
|
|
+ tokenSeparators: [','],
|
|
|
+ placeholder: '".get_lang('StartToType')."'
|
|
|
});
|
|
|
-EOF;
|
|
|
+ ";
|
|
|
}
|
|
|
break;
|
|
|
case self::FIELD_TYPE_TIMEZONE:
|