Internal: Remove enabled_text2audio & force enable_record_audio active

pull/6065/head
Christian Beeznest 7 months ago
parent 68813ee8ff
commit 333b52ea6a
  1. 2
      assets/vue/composables/document/documentActionButtons.js
  2. 2
      public/main/exercise/exercise_show.php
  3. 6
      public/main/exercise/exercise_submit.php
  4. 8
      public/main/exercise/question.class.php
  5. 20
      public/main/exercise/question_list_admin.inc.php
  6. 16
      public/main/inc/lib/exercise.lib.php
  7. 7
      public/main/install/profiles/prod.json
  8. 2
      public/main/lp/lp_add_audio.php
  9. 1
      src/CoreBundle/Controller/PlatformConfigurationController.php
  10. 10
      src/CoreBundle/DataFixtures/SettingsCurrentFixtures.php
  11. 2
      src/CoreBundle/Migrations/Schema/V200/Version20170627122900.php
  12. 2
      src/CoreBundle/Settings/CourseSettingsSchema.php
  13. 3
      src/CoreBundle/Settings/DocumentSettingsSchema.php
  14. 4
      src/CoreBundle/Settings/SettingsManager.php

@ -29,7 +29,7 @@ export function useDocumentActionButtons() {
if (isAllowedToEdit) { if (isAllowedToEdit) {
if (!isCertificateMode.value) { if (!isCertificateMode.value) {
showNewDocumentButton.value = true showNewDocumentButton.value = true
showRecordAudioButton.value = "true" === platformConfigStore.getSetting("course.enable_record_audio") showRecordAudioButton.value = true
showUploadButton.value = true showUploadButton.value = true
showNewFolderButton.value = true showNewFolderButton.value = true
showNewCloudFileButton.value = true // enable_add_file_link ? showNewCloudFileButton.value = true // enable_add_file_link ?

@ -141,7 +141,7 @@ if (!$is_allowedToEdit) {
} }
} }
$allowRecordAudio = 'true' === api_get_setting('enable_record_audio'); $allowRecordAudio = true;
$allowTeacherCommentAudio = ('true' === api_get_setting('exercise.allow_teacher_comment_audio')); $allowTeacherCommentAudio = ('true' === api_get_setting('exercise.allow_teacher_comment_audio'));
//$js = '<script>'.api_get_language_translate_html().'</script>'; //$js = '<script>'.api_get_language_translate_html().'</script>';

@ -77,10 +77,8 @@ if ('true' === api_get_setting('exercise.quiz_prevent_copy_paste')) {
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_JS_PATH).'jquery.nocopypaste.js"></script>'; $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_JS_PATH).'jquery.nocopypaste.js"></script>';
} }
if ('true' === api_get_setting('enable_record_audio')) { $htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_JS_PATH).'rtc/RecordRTC.js"></script>';
$htmlHeadXtra[] = '<script src="'.api_get_path(WEB_LIBRARY_JS_PATH).'rtc/RecordRTC.js"></script>'; $htmlHeadXtra[] = api_get_js('record_audio/record_audio.js');
$htmlHeadXtra[] = api_get_js('record_audio/record_audio.js');
}
$zoomOptions = api_get_setting('exercise.quiz_image_zoom', true); $zoomOptions = api_get_setting('exercise.quiz_image_zoom', true);
if (isset($zoomOptions['options']) && !in_array($origin, ['embeddable', 'mobileapp'])) { if (isset($zoomOptions['options']) && !in_array($origin, ['embeddable', 'mobileapp'])) {

@ -1097,10 +1097,6 @@ abstract class Question
*/ */
public static function get_question_type($type) public static function get_question_type($type)
{ {
if (ORAL_EXPRESSION == $type && 'true' !== api_get_setting('enable_record_audio')) {
return null;
}
return self::$questionTypes[$type]; return self::$questionTypes[$type];
} }
@ -1109,10 +1105,6 @@ abstract class Question
*/ */
public static function getQuestionTypeList() public static function getQuestionTypeList()
{ {
if ('true' !== api_get_setting('enable_record_audio')) {
self::$questionTypes[ORAL_EXPRESSION] = null;
unset(self::$questionTypes[ORAL_EXPRESSION]);
}
if ('true' !== api_get_setting('enable_quiz_scenario')) { if ('true' !== api_get_setting('enable_quiz_scenario')) {
self::$questionTypes[HOT_SPOT_DELINEATION] = null; self::$questionTypes[HOT_SPOT_DELINEATION] = null;
unset(self::$questionTypes[HOT_SPOT_DELINEATION]); unset(self::$questionTypes[HOT_SPOT_DELINEATION]);

@ -144,11 +144,11 @@ if (isset($exerciseId) && $exerciseId > 0) {
// In building mode show all questions not render by teacher order. // In building mode show all questions not render by teacher order.
$objExercise->questionSelectionType = EX_Q_SELECTION_ORDERED; $objExercise->questionSelectionType = EX_Q_SELECTION_ORDERED;
$allowQuestionOrdering = true; $allowQuestionOrdering = true;
$showPagination = api_get_setting('exercise.show_question_pagination'); $showPagination = 'true' === api_get_setting('exercise.show_question_pagination');
$length = api_get_setting('exercise.question_pagination_length'); $length = (int) api_get_setting('exercise.question_pagination_length') ?: 30;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if (!empty($showPagination) && $nbrQuestions > $showPagination) { if ($showPagination && $nbrQuestions > $length) {
$allowQuestionOrdering = false; $allowQuestionOrdering = false;
$start = ($page - 1) * $length; $start = ($page - 1) * $length;
$questionList = $objExercise->selectQuestionList(true, true); $questionList = $objExercise->selectQuestionList(true, true);
@ -310,13 +310,15 @@ if (isset($exerciseId) && $exerciseId > 0) {
echo '</div>'; //question list div echo '</div>'; //question list div
// Pagination navigation // Pagination navigation
$totalPages = ceil($nbrQuestions / $length); if ($showPagination && $nbrQuestions > $length) {
echo '<div class="pagination flex justify-center mt-4">'; $totalPages = ceil($nbrQuestions / $length);
for ($i = 1; $i <= $totalPages; $i++) { echo '<div class="pagination flex justify-center mt-4">';
$isActive = ($i == $page) ? 'bg-primary text-white' : 'border-gray-300 text-gray-700 hover:bg-gray-200'; for ($i = 1; $i <= $totalPages; $i++) {
echo '<a href="?'.http_build_query(array_merge($_GET, ['page' => $i])).'" class="mx-1 px-4 py-2 border '.$isActive.' rounded">'.$i.'</a>'; $isActive = ($i == $page) ? 'bg-primary text-white' : 'border-gray-300 text-gray-700 hover:bg-gray-200';
echo '<a href="?' . http_build_query(array_merge($_GET, ['page' => $i])) . '" class="mx-1 px-4 py-2 border ' . $isActive . ' rounded">' . $i . '</a>';
}
echo '</div>';
} }
echo '</div>';
} else { } else {
echo Display::return_message(get_lang('Questions list (there is no question so far).'), 'warning'); echo Display::return_message(get_lang('Questions list (there is no question so far).'), 'warning');
} }

@ -201,15 +201,13 @@ class ExerciseLib
break; break;
case ORAL_EXPRESSION: case ORAL_EXPRESSION:
// Add nanog // Add nanog
if ('true' === api_get_setting('enable_record_audio')) { //@todo pass this as a parameter
//@todo pass this as a parameter global $exercise_stat_info;
global $exercise_stat_info; if (!empty($exercise_stat_info)) {
if (!empty($exercise_stat_info)) { echo $objQuestionTmp->returnRecorder((int) $exercise_stat_info['exe_id']);
echo $objQuestionTmp->returnRecorder((int) $exercise_stat_info['exe_id']); $generatedFile = self::getOralFileAudio($exercise_stat_info['exe_id'], $questionId);
$generatedFile = self::getOralFileAudio($exercise_stat_info['exe_id'], $questionId); if (!empty($generatedFile)) {
if (!empty($generatedFile)) { echo $generatedFile;
echo $generatedFile;
}
} }
} }

@ -43,11 +43,6 @@
"subkey": "", "subkey": "",
"selected_value": "true" "selected_value": "true"
}, },
{
"variable": "enabled_text2audio",
"subkey": "",
"selected_value": "true"
},
{ {
"variable": "gradebook_score_display_coloring", "variable": "gradebook_score_display_coloring",
"subkey": "", "subkey": "",
@ -59,4 +54,4 @@
"selected_value": "true" "selected_value": "true"
} }
] ]
} }

@ -132,7 +132,7 @@ $tpl = new Template(get_lang('Add'));
$tpl->assign('unique_file_id', api_get_unique_id()); $tpl->assign('unique_file_id', api_get_unique_id());
$tpl->assign('course_code', api_get_course_id()); $tpl->assign('course_code', api_get_course_id());
$tpl->assign('filename', $lp_item->get_title().'_nano.wav'); $tpl->assign('filename', $lp_item->get_title().'_nano.wav');
$tpl->assign('enable_record_audio', 'true' === api_get_setting('enable_record_audio')); $tpl->assign('enable_record_audio', true);
$tpl->assign('cur_dir_path', '/audio'); $tpl->assign('cur_dir_path', '/audio');
$tpl->assign('lp_item_id', $lp_item_id); $tpl->assign('lp_item_id', $lp_item_id);
//$tpl->assign('lp_dir', api_remove_trailing_slash($lpPathInfo['dir'])); //$tpl->assign('lp_dir', api_remove_trailing_slash($lpPathInfo['dir']));

@ -76,7 +76,6 @@ class PlatformConfigurationController extends AbstractController
'course.course_validation', 'course.course_validation',
'course.student_view_enabled', 'course.student_view_enabled',
'course.allow_edit_tool_visibility_in_session', 'course.allow_edit_tool_visibility_in_session',
'course.enable_record_audio',
'session.limit_session_admin_role', 'session.limit_session_admin_role',
'session.allow_session_admin_read_careers', 'session.allow_session_admin_read_careers',
'session.limit_session_admin_list_users', 'session.limit_session_admin_list_users',

@ -363,11 +363,6 @@ class SettingsCurrentFixtures extends Fixture implements FixtureGroupInterface
'title' => 'Courses custom icons', 'title' => 'Courses custom icons',
'comment' => 'Use course images as the course icon in courses lists (instead of the default green blackboard icon).', 'comment' => 'Use course images as the course icon in courses lists (instead of the default green blackboard icon).',
], ],
[
'name' => 'enable_record_audio',
'title' => 'Enable audio recorder',
'comment' => 'Enables the WebRTC (flashless) audio recorder at several locations inside Chamilo',
],
[ [
'name' => 'hide_scorm_copy_link', 'name' => 'hide_scorm_copy_link',
'title' => 'Hide SCORM Copy', 'title' => 'Hide SCORM Copy',
@ -816,11 +811,6 @@ class SettingsCurrentFixtures extends Fixture implements FixtureGroupInterface
'title' => 'Enable Webcam Clip', 'title' => 'Enable Webcam Clip',
'comment' => 'Webcam Clip allow to users capture images from his webcam and send them to server in JPEG (.jpg or .jpeg) format', 'comment' => 'Webcam Clip allow to users capture images from his webcam and send them to server in JPEG (.jpg or .jpeg) format',
], ],
[
'name' => 'enabled_text2audio',
'title' => 'Enable online services for text to speech conversion',
'comment' => 'Online tool to convert text to speech. Uses speech synthesis technology to generate audio files saved into your course.',
],
[ [
'name' => 'pdf_export_watermark_by_course', 'name' => 'pdf_export_watermark_by_course',
'title' => 'Enable watermark definition by course', 'title' => 'Enable watermark definition by course',

@ -205,7 +205,6 @@ class Version20170627122900 extends AbstractMigrationChamilo
'server_type' => 'platform', 'server_type' => 'platform',
'show_official_code_whoisonline' => 'profile', 'show_official_code_whoisonline' => 'profile',
'show_terms_if_profile_completed' => 'ticket', 'show_terms_if_profile_completed' => 'ticket',
'enable_record_audio' => 'course',
'add_users_by_coach' => 'session', 'add_users_by_coach' => 'session',
'allow_captcha' => 'security', 'allow_captcha' => 'security',
'allow_coach_to_edit_course_session' => 'session', 'allow_coach_to_edit_course_session' => 'session',
@ -236,7 +235,6 @@ class Version20170627122900 extends AbstractMigrationChamilo
'enable_webcam_clip' => 'document', 'enable_webcam_clip' => 'document',
'enabled_support_pixlr' => 'editor', 'enabled_support_pixlr' => 'editor',
'enabled_support_svg' => 'editor', 'enabled_support_svg' => 'editor',
'enabled_text2audio' => 'document',
'extend_rights_for_coach' => 'session', 'extend_rights_for_coach' => 'session',
'extend_rights_for_coach_on_survey' => 'survey', 'extend_rights_for_coach_on_survey' => 'survey',
'hide_course_group_if_no_tools_available' => 'group', 'hide_course_group_if_no_tools_available' => 'group',

@ -85,7 +85,6 @@ class CourseSettingsSchema extends AbstractSettingsSchema
'course_images_in_courses_list' => 'true', 'course_images_in_courses_list' => 'true',
'teacher_can_select_course_template' => 'true', 'teacher_can_select_course_template' => 'true',
'show_toolshortcuts' => '', 'show_toolshortcuts' => '',
'enable_record_audio' => 'false',
'lp_show_reduced_report' => 'false', 'lp_show_reduced_report' => 'false',
'course_creation_splash_screen' => 'true', 'course_creation_splash_screen' => 'true',
'block_registered_users_access_to_open_course_contents' => 'false', 'block_registered_users_access_to_open_course_contents' => 'false',
@ -246,7 +245,6 @@ class CourseSettingsSchema extends AbstractSettingsSchema
->add('course_images_in_courses_list', YesNoType::class) ->add('course_images_in_courses_list', YesNoType::class)
->add('teacher_can_select_course_template', YesNoType::class) ->add('teacher_can_select_course_template', YesNoType::class)
->add('show_toolshortcuts', YesNoType::class) ->add('show_toolshortcuts', YesNoType::class)
->add('enable_record_audio', YesNoType::class)
->add('lp_show_reduced_report', YesNoType::class) ->add('lp_show_reduced_report', YesNoType::class)
->add('course_creation_splash_screen', YesNoType::class) ->add('course_creation_splash_screen', YesNoType::class)
->add('block_registered_users_access_to_open_course_contents', YesNoType::class) ->add('block_registered_users_access_to_open_course_contents', YesNoType::class)

@ -39,8 +39,6 @@ class DocumentSettingsSchema extends AbstractSettingsSchema
'students_export2pdf' => 'true', 'students_export2pdf' => 'true',
'show_users_folders' => 'true', 'show_users_folders' => 'true',
'show_default_folders' => 'true', 'show_default_folders' => 'true',
'enabled_text2audio' => 'false',
// 'enable_nanogong' => 'false',
'show_documents_preview' => 'false', 'show_documents_preview' => 'false',
'enable_webcam_clip' => 'false', 'enable_webcam_clip' => 'false',
'tool_visible_by_default_at_creation' => [ 'tool_visible_by_default_at_creation' => [
@ -121,7 +119,6 @@ class DocumentSettingsSchema extends AbstractSettingsSchema
->add('students_export2pdf', YesNoType::class) ->add('students_export2pdf', YesNoType::class)
->add('show_users_folders', YesNoType::class) ->add('show_users_folders', YesNoType::class)
->add('show_default_folders', YesNoType::class) ->add('show_default_folders', YesNoType::class)
->add('enabled_text2audio', YesNoType::class)
// ->add('enable_nanogong', YesNoType::class) // ->add('enable_nanogong', YesNoType::class)
->add('show_documents_preview', YesNoType::class) ->add('show_documents_preview', YesNoType::class)
->add('enable_webcam_clip', YesNoType::class) ->add('enable_webcam_clip', YesNoType::class)

@ -652,7 +652,6 @@ class SettingsManager implements SettingsManagerInterface
'show_users_folders' => 'Tools', 'show_users_folders' => 'Tools',
'show_default_folders' => 'Tools', 'show_default_folders' => 'Tools',
'show_chat_folder' => 'Tools', 'show_chat_folder' => 'Tools',
'enabled_text2audio' => 'Tools',
'course_hide_tools' => 'Course', 'course_hide_tools' => 'Course',
'enabled_support_pixlr' => 'Tools', 'enabled_support_pixlr' => 'Tools',
'show_groups_to_users' => 'Session', 'show_groups_to_users' => 'Session',
@ -791,7 +790,6 @@ class SettingsManager implements SettingsManagerInterface
'messaging_gdc_project_number' => 'WebServices', 'messaging_gdc_project_number' => 'WebServices',
'messaging_gdc_api_key' => 'WebServices', 'messaging_gdc_api_key' => 'WebServices',
'teacher_can_select_course_template' => 'Course', 'teacher_can_select_course_template' => 'Course',
'enable_record_audio' => 'Tools',
'allow_show_skype_account' => 'Platform', 'allow_show_skype_account' => 'Platform',
'allow_show_linkedin_url' => 'Platform', 'allow_show_linkedin_url' => 'Platform',
'enable_profile_user_address_geolocalization' => 'User', 'enable_profile_user_address_geolocalization' => 'User',
@ -953,8 +951,6 @@ class SettingsManager implements SettingsManagerInterface
'enabled_support_svg' => 'editor', 'enabled_support_svg' => 'editor',
'enabled_support_pixlr' => 'editor', 'enabled_support_pixlr' => 'editor',
'enable_webcam_clip' => 'document', 'enable_webcam_clip' => 'document',
'enable_record_audio' => 'course',
'enabled_text2audio' => 'document',
'permanently_remove_deleted_files' => 'document', 'permanently_remove_deleted_files' => 'document',
'allow_delete_attendance' => 'attendance', 'allow_delete_attendance' => 'attendance',
'display_groups_forum_in_general_tool' => 'forum', 'display_groups_forum_in_general_tool' => 'forum',

Loading…
Cancel
Save