|
@@ -141,6 +141,9 @@ class ExtraField extends Model
|
|
|
case 'survey':
|
|
|
$this->extraFieldType = EntityExtraField::SURVEY_FIELD_TYPE;
|
|
|
break;
|
|
|
+ case 'schedule_announcement':
|
|
|
+ $this->extraFieldType = EntityExtraField::SCHEDULE_ANNOUNCEMENT;
|
|
|
+ break;
|
|
|
}
|
|
|
|
|
|
$this->pageUrl = 'extra_fields.php?type='.$this->type;
|
|
@@ -161,7 +164,7 @@ class ExtraField extends Model
|
|
|
*/
|
|
|
public static function getValidExtraFieldTypes()
|
|
|
{
|
|
|
- return [
|
|
|
+ $result = [
|
|
|
'user',
|
|
|
'course',
|
|
|
'session',
|
|
@@ -175,6 +178,12 @@ class ExtraField extends Model
|
|
|
'user_certificate',
|
|
|
'survey'
|
|
|
];
|
|
|
+
|
|
|
+ if (api_get_configuration_value('allow_scheduled_announcements')) {
|
|
|
+ $result[] = 'schedule_announcement';
|
|
|
+ }
|
|
|
+
|
|
|
+ return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1655,8 +1664,8 @@ class ExtraField extends Model
|
|
|
break;
|
|
|
case self::FIELD_TYPE_SELECT_MULTIPLE:
|
|
|
$options = [];
|
|
|
- foreach ($field_details['options'] as $option_id => $option_details) {
|
|
|
- $options[$option_details['option_value']] = $option_details['display_text'];
|
|
|
+ foreach ($field_details['options'] as $optionDetails) {
|
|
|
+ $options[$optionDetails['option_value']] = $optionDetails['display_text'];
|
|
|
}
|
|
|
$form->addElement(
|
|
|
'select',
|
|
@@ -1951,12 +1960,12 @@ class ExtraField extends Model
|
|
|
$form->applyFilter('extra_'.$field_details['variable'], 'stripslashes');
|
|
|
$form->applyFilter('extra_'.$field_details['variable'], 'trim');
|
|
|
|
|
|
- $allowed_picture_types = ['jpg', 'jpeg', 'png', 'gif'];
|
|
|
+ $allowedPictureTypes = ['jpg', 'jpeg', 'png', 'gif'];
|
|
|
$form->addRule(
|
|
|
'extra_'.$field_details['variable'],
|
|
|
- get_lang('OnlyImagesAllowed').' ('.implode(',', $allowed_picture_types).')',
|
|
|
+ get_lang('OnlyImagesAllowed').' ('.implode(',', $allowedPictureTypes).')',
|
|
|
'filetype',
|
|
|
- $allowed_picture_types
|
|
|
+ $allowedPictureTypes
|
|
|
);
|
|
|
|
|
|
if ($freezeElement) {
|
|
@@ -1989,14 +1998,45 @@ class ExtraField extends Model
|
|
|
array_key_exists($fieldVariable, $extraData)
|
|
|
) {
|
|
|
if (file_exists(api_get_path(SYS_UPLOAD_PATH).$extraData[$fieldVariable])) {
|
|
|
- $fieldTexts[] = Display::url(
|
|
|
- api_get_path(WEB_UPLOAD_PATH).$extraData[$fieldVariable],
|
|
|
+ $linkToDelete = '';
|
|
|
+ $divItemId = $field_details['variable'];
|
|
|
+ if (api_is_platform_admin()) {
|
|
|
+ $url = api_get_path(WEB_AJAX_PATH).'extra_field.ajax.php?type='.$this->type;
|
|
|
+ $url .= '&a=delete_file&field_id='.$field_details['id'].'&item_id='.$itemId;
|
|
|
+
|
|
|
+ $deleteId = $field_details['variable'].'_delete';
|
|
|
+ $form->addHtml("
|
|
|
+ <script>
|
|
|
+ $(document).ready(function() {
|
|
|
+ $('#".$deleteId."').on('click', function() {
|
|
|
+ $.ajax({
|
|
|
+ type: 'GET',
|
|
|
+ url: '".$url."',
|
|
|
+ success: function(result) {
|
|
|
+ if (result == 1) {
|
|
|
+ $('#".$divItemId."').html('".get_lang('Deleted')."');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ </script>
|
|
|
+ ");
|
|
|
+
|
|
|
+ $linkToDelete = ' '.Display::url(
|
|
|
+ Display::return_icon('delete.png', get_lang('Delete')),
|
|
|
+ 'javascript:void(0)',
|
|
|
+ ['id' => $deleteId]
|
|
|
+ );
|
|
|
+ }
|
|
|
+ $fieldTexts[] = '<div id="'.$divItemId.'">'.Display::url(
|
|
|
+ basename($extraData[$fieldVariable]),
|
|
|
api_get_path(WEB_UPLOAD_PATH).$extraData[$fieldVariable],
|
|
|
[
|
|
|
'title' => $field_details['display_text'],
|
|
|
'target' => '_blank'
|
|
|
]
|
|
|
- );
|
|
|
+ ).$linkToDelete.'</div>';
|
|
|
}
|
|
|
}
|
|
|
|