Add doodle edition see BT#15378

pull/2858/head
Julio Montoya 7 years ago
parent 12e42c309c
commit 14c4be77d5
  1. 8
      main/inc/lib/formvalidator/Element/DatePicker.php
  2. 1
      main/inc/lib/formvalidator/Element/DateRangePicker.php
  3. 9
      main/inc/lib/formvalidator/Element/DateTimePicker.php
  4. 80
      main/inc/lib/formvalidator/Element/DateTimeRangePicker.php
  5. 34
      main/survey/create_meeting.php
  6. 6
      main/survey/create_new_survey.php
  7. 256
      main/survey/edit_meeting.php
  8. 51
      main/survey/meeting.php
  9. 17
      main/survey/survey.lib.php
  10. 10
      main/survey/surveyUtil.class.php
  11. 2
      main/survey/survey_list.php

@ -37,7 +37,6 @@ class DatePicker extends HTML_QuickForm_text
$id = $this->getAttribute('id'); $id = $this->getAttribute('id');
$value = $this->getValue(); $value = $this->getValue();
$label = $this->getLabel();
if (!empty($value)) { if (!empty($value)) {
$value = api_format_date($value, DATE_FORMAT_LONG_NO_DAY); $value = api_format_date($value, DATE_FORMAT_LONG_NO_DAY);
@ -82,7 +81,6 @@ class DatePicker extends HTML_QuickForm_text
public function getTemplate($layout) public function getTemplate($layout)
{ {
$size = $this->getColumnsSize(); $size = $this->getColumnsSize();
$value = $this->getValue();
if (empty($size)) { if (empty($size)) {
$sizeTemp = $this->getInputSize(); $sizeTemp = $this->getInputSize();
@ -101,14 +99,10 @@ class DatePicker extends HTML_QuickForm_text
} }
// else just keep the $size array as received // else just keep the $size array as received
} else { } else {
$size = [2, intval($size), 2]; $size = [2, (int) $size, 2];
} }
} }
if (!empty($value)) {
$value = api_format_date($value, DATE_FORMAT_LONG_NO_DAY);
}
switch ($layout) { switch ($layout) {
case FormValidator::LAYOUT_INLINE: case FormValidator::LAYOUT_INLINE:
return ' return '

@ -122,7 +122,6 @@ class DateRangePicker extends HTML_QuickForm_text
{ {
$js = null; $js = null;
$id = $this->getAttribute('id'); $id = $this->getAttribute('id');
$dateRange = $this->getAttribute('value'); $dateRange = $this->getAttribute('value');
$defaultDates = null; $defaultDates = null;

@ -33,8 +33,9 @@ class DateTimePicker extends HTML_QuickForm_text
$id = $this->getAttribute('id'); $id = $this->getAttribute('id');
$value = $this->getValue(); $value = $this->getValue();
$formattedValue = '';
if (!empty($value)) { if (!empty($value)) {
$value = api_format_date($value, DATE_TIME_FORMAT_LONG_24H); $formattedValue = api_format_date($value, DATE_TIME_FORMAT_LONG_24H);
} }
$label = $this->getLabel(); $label = $this->getLabel();
@ -49,7 +50,7 @@ class DateTimePicker extends HTML_QuickForm_text
<span class="input-group-addon cursor-pointer"> <span class="input-group-addon cursor-pointer">
<input '.$this->_getAttrString($this->_attributes).'> <input '.$this->_getAttrString($this->_attributes).'>
</span> </span>
<p class="form-control disabled" id="'.$id.'_alt_text">'.$value.'</p> <p class="form-control disabled" id="'.$id.'_alt_text">'.$formattedValue.'</p>
<input class="form-control" type="hidden" id="'.$id.'_alt" value="'.$value.'"> <input class="form-control" type="hidden" id="'.$id.'_alt" value="'.$value.'">
<span class="input-group-btn"> <span class="input-group-btn">
<button class="btn btn-default" type="button" <button class="btn btn-default" type="button"
@ -79,7 +80,7 @@ class DateTimePicker extends HTML_QuickForm_text
public function getTemplate($layout) public function getTemplate($layout)
{ {
$size = $this->getColumnsSize(); $size = $this->getColumnsSize();
$value = $this->getValue();
if (empty($size)) { if (empty($size)) {
$sizeTemp = $this->getInputSize(); $sizeTemp = $this->getInputSize();
if (empty($size)) { if (empty($size)) {
@ -97,7 +98,7 @@ class DateTimePicker extends HTML_QuickForm_text
} }
// else just keep the $size array as received // else just keep the $size array as received
} else { } else {
$size = [2, intval($size), 2]; $size = [2, (int) $size, 2];
} }
} }

@ -20,10 +20,12 @@ class DateTimeRangePicker extends DateRangePicker
} }
$id = $this->getAttribute('id'); $id = $this->getAttribute('id');
$value = $this->getValue(); $dateRange = $this->getValue();
if (!empty($value)) { $value = '';
$value = api_format_date($value, DATE_FORMAT_LONG_NO_DAY); if (!empty($dateRange)) {
$dates = $this->parseDateRange($dateRange);
$value = api_format_date($dates['date'], DATE_FORMAT_LONG_NO_DAY);
} }
return ' return '
@ -70,7 +72,7 @@ class DateTimeRangePicker extends DateRangePicker
} }
// else just keep the $size array as received // else just keep the $size array as received
} else { } else {
$size = [2, intval($size), 2]; $size = [2, (int) $size, 2];
} }
} }
@ -121,9 +123,9 @@ class DateTimeRangePicker extends DateRangePicker
<div class="col-sm-'.$size[1].'"> <div class="col-sm-'.$size[1].'">
<div class="input-group"> <div class="input-group">
<p id="'.$id.'_time_range"> <p id="'.$id.'_time_range">
<input type="text" name="'.$id.'_time_range_start" class="time start" autocomplete="off"> <input type="text" id="'.$id.'_time_range_start" name="'.$id.'_time_range_start" class="time start" autocomplete="off">
'.get_lang('To').' '.get_lang('To').'
<input type="text" name="'.$id.'_time_range_end" class="time end " autocomplete="off"> <input type="text" id="'.$id.'_time_range_end" name="'.$id.'_time_range_end" class="time end " autocomplete="off">
</p> </p>
</div> </div>
</div> </div>
@ -143,6 +145,31 @@ class DateTimeRangePicker extends DateRangePicker
} }
} }
/**
* @param array $dateRange
*
* @return array
*/
public function parseDateRange($dateRange)
{
$dateRange = Security::remove_XSS($dateRange);
$dates = explode('@@', $dateRange);
$dates = array_map('trim', $dates);
$start = isset($dates[0]) ? $dates[0] : '';
$end = isset($dates[1]) ? $dates[1] : '';
$date = substr($start, 0, 10);
$start = isset($dates[0]) ? $dates[0] : '';
//$start = substr($start, 11, strlen($start));
//$end = substr($end, 11, strlen($end));
return [
'date' => $date,
'start_time' => $start,
'end_time' => $end,
];
}
/** /**
* Get the necessary javascript for this datepicker. * Get the necessary javascript for this datepicker.
* *
@ -153,6 +180,18 @@ class DateTimeRangePicker extends DateRangePicker
$js = null; $js = null;
$id = $this->getAttribute('id'); $id = $this->getAttribute('id');
$dateRange = $this->getValue();
$defaultDate = '';
$startTime = '';
$endTime = '';
if (!empty($dateRange)) {
$dates = $this->parseDateRange($dateRange);
$defaultDate = $dates['date'];
$startTime = $dates['start_time'];
$endTime = $dates['end_time'];
}
$js .= "<script> $js .= "<script>
$(function() { $(function() {
var txtDate = $('#$id'), var txtDate = $('#$id'),
@ -163,7 +202,7 @@ class DateTimeRangePicker extends DateRangePicker
txtDate txtDate
.hide() .hide()
.datepicker({ .datepicker({
defaultDate: '".$this->getValue()."', defaultDate: '".$defaultDate."',
dateFormat: 'yy-mm-dd', dateFormat: 'yy-mm-dd',
altField: '#{$id}_alt', altField: '#{$id}_alt',
altFormat: \"".get_lang('DateFormatLongNoDayJS')."\", altFormat: \"".get_lang('DateFormatLongNoDayJS')."\",
@ -178,16 +217,15 @@ class DateTimeRangePicker extends DateRangePicker
.on('change', function (e) { .on('change', function (e) {
txtDateAltText.text(txtDateAlt.val()); txtDateAltText.text(txtDateAlt.val());
}); });
txtDateAltText.on('click', function () { txtDateAltText.on('click', function () {
txtDate.datepicker('show'); txtDate.datepicker('show');
}); });
inputGroup inputGroup
.find('button') .find('button')
.on('click', function (e) { .on('click', function (e) {
e.preventDefault(); e.preventDefault();
$('#$id, #{$id}_alt').val(''); $('#$id, #{$id}_alt').val('');
$('#{$id}_alt_text').html(''); $('#{$id}_alt_text').html('');
}); });
@ -195,15 +233,29 @@ class DateTimeRangePicker extends DateRangePicker
$('#".$id."_time_range .time').timepicker({ $('#".$id."_time_range .time').timepicker({
'showDuration': true, 'showDuration': true,
'timeFormat': 'H:i:s', 'timeFormat': 'H:i:s',
'scrollDefault': 'now', 'scrollDefault': 'now',
}); });
var timeOnlyExampleEl = document.getElementById('".$id."_time_range');
var timeOnlyDatepair = new Datepair(timeOnlyExampleEl);
$('#".$id."_time_range_start').timepicker('setTime', new Date('".$startTime."'));
$('#".$id."_time_range_end').timepicker('setTime', new Date('".$endTime."'));
var timeOnlyExampleEl = document.getElementById('".$id."_time_range');
var timeOnlyDatepair = new Datepair(timeOnlyExampleEl);
}); });
</script>"; </script>";
return $js; return $js;
} }
/**
* @param string $value
*/
public function setValue($value)
{
$this->updateAttributes(
[
'value' => $value
]
);
}
} }

@ -8,6 +8,7 @@ $this_section = SECTION_COURSES;
if (!api_is_allowed_to_edit()) { if (!api_is_allowed_to_edit()) {
api_not_allowed(true); api_not_allowed(true);
} }
$htmlHeadXtra[] = api_get_css_asset('jt.timepicker/jquery.timepicker.css'); $htmlHeadXtra[] = api_get_css_asset('jt.timepicker/jquery.timepicker.css');
$htmlHeadXtra[] = api_get_asset('jt.timepicker/jquery.timepicker.js'); $htmlHeadXtra[] = api_get_asset('jt.timepicker/jquery.timepicker.js');
$htmlHeadXtra[] = api_get_asset('datepair.js/dist/datepair.js'); $htmlHeadXtra[] = api_get_asset('datepair.js/dist/datepair.js');
@ -36,24 +37,25 @@ $form->addHidden('survey_thanks', '');
$form->addHidden('visible_results', '0'); $form->addHidden('visible_results', '0');
$form->addHidden('survey_type', 3); $form->addHidden('survey_type', 3);
// Setting the form elements $text = $form->addText(
/*if ($_GET['action'] == 'edit' && isset($survey_id) && is_numeric($survey_id)) {
$form->addElement('hidden', 'survey_id');
}*/
$text = $form->addElement(
'text',
'survey_title', 'survey_title',
get_lang('Title'), get_lang('Title')
null,
['ToolbarSet' => 'Survey', 'Width' => '100%', 'Height' => '200']
); );
$form->addDateTimePicker('start_date', get_lang('StartDate')); $allowSurveyAvailabilityDatetime = api_get_configuration_value('allow_survey_availability_datetime');
$form->addDateTimePicker('end_date', get_lang('EndDate'));
if ($allowSurveyAvailabilityDatetime) {
$startDateElement = $form->addDateTimePicker('start_date', get_lang('StartDate'));
$endDateElement = $form->addDateTimePicker('end_date', get_lang('EndDate'));
$form->addRule('start_date', get_lang('InvalidDate'), 'datetime');
$form->addRule('end_date', get_lang('InvalidDate'), 'datetime');
} else {
$startDateElement = $form->addElement('date_picker', 'start_date', get_lang('StartDate'));
$endDateElement = $form->addElement('date_picker', 'end_date', get_lang('EndDate'));
$form->addRule('start_date', get_lang('InvalidDate'), 'date');
$form->addRule('end_date', get_lang('InvalidDate'), 'date');
}
$form->addRule('start_date', get_lang('InvalidDate'), 'datetime');
$form->addRule('end_date', get_lang('InvalidDate'), 'datetime');
$form->addRule( $form->addRule(
['start_date', 'end_date'], ['start_date', 'end_date'],
get_lang('StartDateShouldBeBeforeEndDate'), get_lang('StartDateShouldBeBeforeEndDate'),
@ -61,6 +63,9 @@ $form->addRule(
'lte' 'lte'
); );
$form->setRequired($startDateElement);
$form->setRequired($endDateElement);
$form->addHtmlEditor('survey_introduction', get_lang('Description'), false); $form->addHtmlEditor('survey_introduction', get_lang('Description'), false);
$form->setRequired($text); $form->setRequired($text);
@ -149,7 +154,6 @@ if ($form->validate()) {
$counter = 1; $counter = 1;
if (!empty($surveyData['id'])) { if (!empty($surveyData['id'])) {
foreach ($dates as $date) { foreach ($dates as $date) {
//SurveyManager::save_question();
$params = [ $params = [
'c_id' => api_get_course_int_id(), 'c_id' => api_get_course_int_id(),
'survey_id' => $surveyData['id'], 'survey_id' => $surveyData['id'],

@ -165,12 +165,18 @@ $form->addElement(
// Pass the language of the survey in the form // Pass the language of the survey in the form
$form->addElement('hidden', 'survey_language'); $form->addElement('hidden', 'survey_language');
$allowSurveyAvailabilityDatetime = api_get_configuration_value('allow_survey_availability_datetime');
if ($allowSurveyAvailabilityDatetime) { if ($allowSurveyAvailabilityDatetime) {
$startDateElement = $form->addDateTimePicker('start_date', get_lang('StartDate')); $startDateElement = $form->addDateTimePicker('start_date', get_lang('StartDate'));
$endDateElement = $form->addDateTimePicker('end_date', get_lang('EndDate')); $endDateElement = $form->addDateTimePicker('end_date', get_lang('EndDate'));
$form->addRule('start_date', get_lang('InvalidDate'), 'datetime');
$form->addRule('end_date', get_lang('InvalidDate'), 'datetime');
} else { } else {
$startDateElement = $form->addElement('date_picker', 'start_date', get_lang('StartDate')); $startDateElement = $form->addElement('date_picker', 'start_date', get_lang('StartDate'));
$endDateElement = $form->addElement('date_picker', 'end_date', get_lang('EndDate')); $endDateElement = $form->addElement('date_picker', 'end_date', get_lang('EndDate'));
$form->addRule('start_date', get_lang('InvalidDate'), 'date');
$form->addRule('end_date', get_lang('InvalidDate'), 'date');
} }
$form->setRequired($startDateElement); $form->setRequired($startDateElement);

@ -0,0 +1,256 @@
<?php
/* For licensing terms, see /license.txt */
require_once __DIR__.'/../inc/global.inc.php';
$this_section = SECTION_COURSES;
if (!api_is_allowed_to_edit()) {
api_not_allowed(true);
}
if (!api_is_allowed_to_edit()) {
if (!api_is_session_general_coach() ||
(!empty($_GET['survey_id']) &&
!api_is_element_in_the_session(TOOL_SURVEY, $_GET['survey_id']))
) {
api_not_allowed(true);
}
}
$htmlHeadXtra[] = api_get_css_asset('jt.timepicker/jquery.timepicker.css');
$htmlHeadXtra[] = api_get_asset('jt.timepicker/jquery.timepicker.js');
$htmlHeadXtra[] = api_get_asset('datepair.js/dist/datepair.js');
$htmlHeadXtra[] = api_get_asset('datepair.js/dist/jquery.datepair.js');
$interbreadcrumb[] = [
'url' => api_get_path(WEB_CODE_PATH).'survey/survey_list.php?'.api_get_cidreq(),
'name' => get_lang('SurveyList'),
];
$surveyId = isset($_GET['survey_id']) ? (int) $_GET['survey_id'] : null;
$surveyData = SurveyManager::get_survey($surveyId);
if (empty($surveyData)) {
api_not_allowed(true);
}
$courseInfo = api_get_course_info();
$tool_name = get_lang('Edit');
$form = new FormValidator(
'survey',
'post',
api_get_self().'?action=edit&'.api_get_cidreq().'&survey_id='.$surveyId
);
$form->addElement('header', $tool_name);
$form->addHidden('anonymous', 0);
$form->addHidden('survey_language', $courseInfo['language']);
$form->addHidden('survey_subtitle', '');
$form->addHidden('survey_thanks', '');
$form->addHidden('visible_results', '0');
$form->addHidden('survey_type', 3);
$text = $form->addText(
'survey_title',
get_lang('Title')
);
$allowSurveyAvailabilityDatetime = api_get_configuration_value('allow_survey_availability_datetime');
if ($allowSurveyAvailabilityDatetime) {
$startDateElement = $form->addDateTimePicker('start_date', get_lang('StartDate'));
$endDateElement = $form->addDateTimePicker('end_date', get_lang('EndDate'));
$form->addRule('start_date', get_lang('InvalidDate'), 'datetime');
$form->addRule('end_date', get_lang('InvalidDate'), 'datetime');
} else {
$startDateElement = $form->addElement('date_picker', 'start_date', get_lang('StartDate'));
$endDateElement = $form->addElement('date_picker', 'end_date', get_lang('EndDate'));
$form->addRule('start_date', get_lang('InvalidDate'), 'date');
$form->addRule('end_date', get_lang('InvalidDate'), 'date');
}
$form->addRule(
['start_date', 'end_date'],
get_lang('StartDateShouldBeBeforeEndDate'),
'date_compare',
'lte'
);
$form->addHtmlEditor('survey_introduction', get_lang('Description'), false);
$form->setRequired($text);
$questions = SurveyManager::get_questions($surveyData['iid']);
$currentQuestionsCount = count($questions);
$counter = 1;
foreach ($questions as $question) {
$name = 'time_'.$counter;
$parts = explode('@@', $question['question']);
$surveyData[$name] = api_get_local_time($parts[0]).'@@'.api_get_local_time($parts[1]);
$form->addDateTimeRangePicker($name, get_lang('Date'));
$form->addHidden($name.'_question_id', $question['question_id']);
$counter++;
}
$currentQuestionsCount++;
$hideList = '';
$maxEvents = $currentQuestionsCount + 10;
for ($i = $currentQuestionsCount; $i <= $maxEvents; $i++) {
$name = 'time_'.$i;
$form->addDateTimeRangePicker($name, get_lang('Date'));
$hideList .= "$('#".$name."_date_time_wrapper').hide();";
}
$form->addHtml('<script>
$(function() {
'.$hideList.'
var number = "'.--$currentQuestionsCount.'";
$("#add_button").on("click", function() {
number++;
$("#time_" + number + "_date_time_wrapper").show();
$("#time_" + number + "_time_range_start").val("");
$("#time_" + number + "_time_range_end").val("");
$("#time_" + number + "_alt").val("");
});
$("#remove_button").on("click", function() {
if (number > 1) {
console.log("#time_" + number + "_time_range_start");
$("#time_" + number + "_date_time_wrapper").hide();
$("#time_" + number).val("delete");
$("#time_" + number + "_alt").val("delete");
$("#time_" + number + "_time_range_start").val("delete");
number--;
}
});
});
</script>');
$form->addLabel(
'',
Display::url(get_lang('Add'), 'javascript:void(0)', ['id' => 'add_button', 'class' => 'btn btn-default'])
.' '.
Display::url(
get_lang('Remove'),
'javascript:void(0)',
['id' => 'remove_button', 'class' => 'btn btn-danger']
)
);
$form->addButtonUpdate(get_lang('Edit'), 'submit_survey');
$form->setDefaults($surveyData);
// The validation or display
if ($form->validate()) {
// Exporting the values
$values = $form->getSubmitValues();
$values['survey_id'] = $surveyId;
$values['survey_code'] = SurveyManager::generateSurveyCode($values['survey_title']);
// Storing the survey
SurveyManager::store_survey($values);
$dates = [];
$deleteItems = [];
for ($i = 1; $i <= $maxEvents; $i++) {
$name = 'time_'.$i;
if (isset($values[$name]) && !empty($values[$name])) {
$id = '';
if (isset($values[$name.'_question_id'])) {
$id = $values[$name.'_question_id'];
}
$date = $values[$name];
if ($date === 'delete' && !empty($id)) {
$deleteItems[] = $id;
}
if (empty($date)) {
continue;
}
$start = $name.'_time_range_start';
$end = $name.'_time_range_end';
$start = $values[$start];
$end = $values[$end];
$part = explode('@@', $values[$name]);
$firstDate = substr($part[0], 0, 10);
$start = api_get_utc_datetime($firstDate.' '.$start);
$end = api_get_utc_datetime($firstDate.' '.$end);
if (!empty($start) && !empty($start)) {
$row = [
'id' => $id,
'start' => $start,
'end' => $end,
];
$dates[] = $row;
}
}
}
$questionTable = Database::get_course_table(TABLE_SURVEY_QUESTION);
$counter = 1;
if (!empty($surveyData['iid'])) {
$questions = SurveyManager::get_questions($surveyData['iid']);
if (!empty($questions)) {
$questions = array_column($questions, 'question');
}
foreach ($dates as $date) {
$formattedDate = $date['start'].'@@'.$date['end'];
if (!empty($date['id'])) {
$questionId = $date['id'];
$sql = "UPDATE $questionTable SET survey_question = '$formattedDate'
WHERE iid = $questionId";
Database::query($sql);
} else {
$params = [
'c_id' => api_get_course_int_id(),
'survey_id' => $surveyData['iid'],
'survey_question' => $formattedDate,
'survey_question_comment' => '',
'type' => 'doodle',
'display' => 'horizontal',
'sort' => $counter,
'shared_question_id' => '0',
'max_value' => 0,
];
$questionId = Database::insert($questionTable, $params);
if ($questionId) {
$sql = "UPDATE $questionTable SET question_id = $questionId
WHERE iid = $questionId";
Database::query($sql);
}
$counter++;
}
}
foreach ($deleteItems as $deleteId) {
SurveyManager::delete_survey_question($surveyData['iid'], $deleteId);
}
}
// Redirecting to the survey page (whilst showing the return message)
header('Location: '.api_get_path(WEB_CODE_PATH).'survey/survey_list.php?'.api_get_cidreq());
exit;
} else {
// Displaying the header
Display::display_header($tool_name);
$form->display();
}
Display::display_footer();

@ -14,7 +14,7 @@ $surveyId = isset($_REQUEST['survey_id']) ? (int) $_REQUEST['survey_id'] : 0;
$invitationcode = isset($_REQUEST['invitationcode']) ? Database::escape_string($_REQUEST['invitationcode']) : 0; $invitationcode = isset($_REQUEST['invitationcode']) ? Database::escape_string($_REQUEST['invitationcode']) : 0;
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : ''; $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
if (!api_is_allowed_to_edit() || !empty($invitationcode)) { if (!empty($invitationcode) || !api_is_allowed_to_edit()) {
$table_survey_invitation = Database::get_course_table(TABLE_SURVEY_INVITATION); $table_survey_invitation = Database::get_course_table(TABLE_SURVEY_INVITATION);
$table_survey = Database::get_course_table(TABLE_SURVEY); $table_survey = Database::get_course_table(TABLE_SURVEY);
@ -38,26 +38,6 @@ if (!api_is_allowed_to_edit() || !empty($invitationcode)) {
$surveyId = $result['iid']; $surveyId = $result['iid'];
} }
// getting all the students of the course
/*if (empty($sessionId)) {
// Registered students in a course outside session.
$students = CourseManager:: get_student_list_from_course_code(
api_get_course_id(),
false,
0,
null,
null,
true
);
} else {
// Registered students in session.
$students = CourseManager:: get_student_list_from_course_code(
api_get_course_id(),
true,
$sessionId
);
}*/
$surveyData = SurveyManager::get_survey($surveyId); $surveyData = SurveyManager::get_survey($surveyId);
if (empty($surveyData)) { if (empty($surveyData)) {
@ -154,8 +134,9 @@ foreach ($questions as $item) {
$date = explode(' ', $startDateTime); $date = explode(' ', $startDateTime);
$endDate = explode(' ', $endDateTime); $endDate = explode(' ', $endDateTime);
$mainDate = $date[0]; $mainDate = $date[0];
$startTime = $date[1];
$endTime = $endDate[1]; $startTime = isset($date[1]) && $date[1] != '00:00:00' ? $date[1] : '';
$endTime = isset($endDate[1]) && $endDate[1] != '00:00:00' ? $endDate[1] : '';
$mainDate = api_format_date($mainDate, DATE_FORMAT_SHORT); $mainDate = api_format_date($mainDate, DATE_FORMAT_SHORT);
$table->setHeaderContents($row, $column, "<h4>$mainDate</h4> $startTime <br >$endTime"); $table->setHeaderContents($row, $column, "<h4>$mainDate</h4> $startTime <br >$endTime");
@ -280,29 +261,5 @@ if ($action === 'edit') {
$content .= '</form>'; $content .= '</form>';
} }
/*$ajaxUrl = api_get_path(WEB_AJAX_PATH).
'survey.ajax.php?a=save_question&'.api_get_cidreq().'&survey_id='.$surveyId.'&question_id=';
$content .= '<script>
$(function() {
$(".question").on("change", function() {
var questionId = $(this).attr("id");
var status = 0;
if ($(this).prop("checked")) {
status = 1;
}
$.ajax({
url: "'.$ajaxUrl.'" + questionId + "&status=" + status,
success: function (data) {
$("#ajax_result").html("<div class=\"alert alert-info\">"+ "'.get_lang('Saved').'" + "</div>");
$("#ajax_result").show();
return;
},
});
});
});
</script>';*/
$template->assign('content', $content); $template->assign('content', $content);
$template->display_one_col_template(); $template->display_one_col_template();

@ -136,14 +136,15 @@ class SurveyManager
$course_code = '', $course_code = '',
$simple_return = false $simple_return = false
) { ) {
$my_course_id = api_get_course_id();
// Table definition // Table definition
if (!empty($course_code)) { if (!empty($course_code)) {
$my_course_id = $course_code; $my_course_id = $course_code;
} elseif (isset($_GET['course'])) { } elseif (isset($_GET['course'])) {
$my_course_id = Security::remove_XSS($_GET['course']); $my_course_id = Security::remove_XSS($_GET['course']);
} else {
$my_course_id = api_get_course_id();
} }
$courseInfo = api_get_course_info($my_course_id); $courseInfo = api_get_course_info($my_course_id);
$survey_id = (int) $survey_id; $survey_id = (int) $survey_id;
$table_survey = Database::get_course_table(TABLE_SURVEY); $table_survey = Database::get_course_table(TABLE_SURVEY);
@ -433,8 +434,8 @@ class SurveyManager
$extraParams['shuffle'] = isset($values['shuffle']) ? $values['shuffle'] : null; $extraParams['shuffle'] = isset($values['shuffle']) ? $values['shuffle'] : null;
if ($values['anonymous'] == 0) { if ($values['anonymous'] == 0) {
$extraParams['show_form_profile'] = $values['show_form_profile']; $extraParams['show_form_profile'] = isset($values['show_form_profile']) ? $values['show_form_profile'] : '';
if ($values['show_form_profile'] == 1) { if ($extraParams['show_form_profile'] == 1) {
$fields = explode(',', $values['input_name_list']); $fields = explode(',', $values['input_name_list']);
$field_values = ''; $field_values = '';
foreach ($fields as &$field) { foreach ($fields as &$field) {
@ -1460,7 +1461,10 @@ class SurveyManager
*/ */
public static function delete_survey_question($survey_id, $question_id, $shared = false) public static function delete_survey_question($survey_id, $question_id, $shared = false)
{ {
$survey_id = (int) $survey_id;
$question_id = (int) $question_id;
$course_id = api_get_course_int_id(); $course_id = api_get_course_int_id();
if ($shared) { if ($shared) {
self::delete_shared_survey_question($survey_id, $question_id); self::delete_shared_survey_question($survey_id, $question_id);
} }
@ -1471,9 +1475,10 @@ class SurveyManager
$sql = "DELETE FROM $table $sql = "DELETE FROM $table
WHERE WHERE
c_id = $course_id AND c_id = $course_id AND
survey_id='".intval($survey_id)."' AND survey_id='".$survey_id."' AND
question_id='".intval($question_id)."'"; question_id='".$question_id."'";
Database::query($sql); Database::query($sql);
error_log($sql);
// Deleting the options of the question of the survey // Deleting the options of the question of the survey
self::delete_survey_question_option($survey_id, $question_id, $shared); self::delete_survey_question_option($survey_id, $question_id, $shared);

@ -2851,10 +2851,16 @@ class SurveyUtil
if (api_is_allowed_to_edit() || if (api_is_allowed_to_edit() ||
api_is_element_in_the_session(TOOL_SURVEY, $survey_id) api_is_element_in_the_session(TOOL_SURVEY, $survey_id)
) { ) {
$editUrl = $codePath.'survey/create_new_survey.php?'.
http_build_query($params + ['action' => 'edit', 'survey_id' => $survey_id]);
if ($survey->getSurveyType() == 3) {
$editUrl = $codePath.'survey/edit_meeting.php?'.
http_build_query($params + ['action' => 'edit', 'survey_id' => $survey_id]);
}
$actions[] = Display::url( $actions[] = Display::url(
Display::return_icon('edit.png', get_lang('Edit')), Display::return_icon('edit.png', get_lang('Edit')),
$codePath.'survey/create_new_survey.php?' $editUrl
.http_build_query($params + ['action' => 'edit', 'survey_id' => $survey_id])
); );
if (SurveyManager::survey_generation_hash_available()) { if (SurveyManager::survey_generation_hash_available()) {

@ -32,8 +32,6 @@ $logInfo = [
'tool' => TOOL_SURVEY, 'tool' => TOOL_SURVEY,
'tool_id' => 0, 'tool_id' => 0,
'tool_id_detail' => 0, 'tool_id_detail' => 0,
'action' => '',
'action_details' => '',
]; ];
Event::registerLog($logInfo); Event::registerLog($logInfo);

Loading…
Cancel
Save