Merge branch '1.11.x' of github.com:chamilo/chamilo-lms into 1.11.x

pull/2606/head
Yannick Warnier 7 years ago
commit 79602b8f8b
  1. 108
      main/admin/usergroup_users.php
  2. 11
      main/auth/my_progress.php
  3. 4
      main/document/document_quota.php
  4. 18
      main/exercise/MultipleAnswerTrueFalseDegreeCertainty.php
  5. 5
      main/inc/ajax/usergroup.ajax.php
  6. 15
      main/inc/lib/document.lib.php
  7. 2
      main/inc/lib/internationalization.lib.php
  8. 7
      main/inc/lib/pear/HTML/QuickForm/Rule/MinText.php
  9. 9
      main/mySpace/myStudents.php
  10. 169
      plugin/learning_calendar/LearningCalendarPlugin.php
  11. 2
      plugin/learning_calendar/README.md
  12. 2
      plugin/learning_calendar/ajax.php
  13. 6
      plugin/learning_calendar/lang/english.php
  14. 20
      plugin/learning_calendar/view/calendar.tpl

@ -29,7 +29,7 @@ if (api_get_plugin_setting('learning_calendar', 'enabled') === 'true') {
$htmlHeadXtra[] = api_get_jqgrid_js();
$action = isset($_GET['action']) ? Security::remove_XSS($_GET['action']) : null;
$userId = isset($_GET['user_id']) ? (int) $_GET['user_id'] : 0;
$calendarId = isset($_GET['calendar_id']) ? (int) $_GET['calendar_id'] : 0;
$calendarId = isset($_REQUEST['calendar_id']) ? (int) $_REQUEST['calendar_id'] : 0;
// setting breadcrumbs
$interbreadcrumb[] = ['url' => 'usergroups.php', 'name' => get_lang('Classes')];
@ -37,23 +37,16 @@ $interbreadcrumb[] = ['url' => '#', 'name' => $userGroupInfo['name']];
switch ($action) {
case 'add_calendar':
$calendars = $calendarPlugin->getCalendars(0, 1000, '');
if (empty($calendars)) {
echo Display::return_message(get_lang('NoData'), 'warning');
exit;
}
$userInfo = api_get_user_info($userId);
$calendars = array_column($calendars, 'title', 'id');
$calendars = array_map('strip_tags', $calendars);
$form = new FormValidator(
'add_calendar',
'post',
api_get_self().'?id='.$id.'&user_id='.$userId.'&action=add_calendar'
);
$userInfo = api_get_user_info($userId);
$form->addHeader($userInfo['complete_name']);
$form->addSelect('calendar_id', get_lang('Calendar'), $calendars, ['disable_js' => true]);
$form->addButtonSave(get_lang('Save'));
$calendarPlugin->getAddUserToCalendarForm($form);
$form->addButtonSave(get_lang('Add'));
$form->display();
if ($form->validate()) {
@ -68,15 +61,6 @@ switch ($action) {
exit;
break;
case 'edit_calendar':
$calendars = $calendarPlugin->getCalendars(0, 1000, '');
if (empty($calendars)) {
echo Display::return_message(get_lang('Nodata'));
exit;
}
$calendars = array_column($calendars, 'title', 'id');
$calendars = array_map('strip_tags', $calendars);
$form = new FormValidator(
'add_calendar',
'post',
@ -84,9 +68,9 @@ switch ($action) {
);
$userInfo = api_get_user_info($userId);
$form->addHeader($userInfo['complete_name']);
$form->addSelect('calendar_id', get_lang('Calendar'), $calendars, ['disable_js' => true]);
$form->addButtonSave(get_lang('Update'));
$calendarPlugin->getAddUserToCalendarForm($form);
$form->setDefaults(['calendar_id' => $calendarId]);
$form->addButtonSave(get_lang('Update'));
$form->display();
if ($form->validate()) {
@ -103,6 +87,30 @@ switch ($action) {
case 'delete':
$res = $usergroup->delete_user_rel_group($_GET['user_id'], $_GET['id']);
Display::addFlash(Display::return_message(get_lang('Deleted'), 'confirmation'));
header('Location: '.api_get_self().'?id='.$id);
exit;
break;
case 'create_control_point':
$value = isset($_GET['value']) ? (int) $_GET['value'] : 0;
$calendarPlugin->addControlPoint($userId, $value);
Display::addFlash(
Display::return_message($calendarPlugin->get_lang('ControlPointAdded'), 'confirmation')
);
header('Location: '.api_get_self().'?id='.$id);
exit;
case 'add_multiple_users_to_calendar':
$userList = isset($_REQUEST['user_list']) ? explode(',', $_REQUEST['user_list']) : 0;
foreach ($userList as $userId) {
$isAdded = $calendarPlugin->addUserToCalendar($calendarId, $userId);
if (!$isAdded) {
$isAdded = $calendarPlugin->updateUserToCalendar($calendarId, $userId);
}
}
Display::addFlash(
Display::return_message(get_lang('Added'), 'confirmation')
);
header('Location: '.api_get_self().'?id='.$id);
exit;
break;
@ -194,18 +202,23 @@ $urlStats = api_get_path(WEB_CODE_PATH);
//$addCalendar = '<a href="'.$urlStats.'mySpace/myStudents.php?student=\'+options.rowId+\'">'.Display::return_icon('agenda.png', get_lang('Agenda'), '', ICON_SIZE_SMALL).'</a>';
$reportingIcon = Display::return_icon('stats.png', get_lang('Reporting'), '', ICON_SIZE_SMALL);
$controlPoint = Display::return_icon('add.png', get_lang('ControlPoint'), '', ICON_SIZE_SMALL);
//return \'<a href="session_edit.php?page=resume_session.php&id=\'+options.rowId+\'">'.Display::return_icon('edit.png', get_lang('Edit'), '', ICON_SIZE_SMALL).'</a>'.
// With this function we can add actions to the jgrid
$action_links = '
function action_formatter(cellvalue, options, rowObject) {
var value = rowObject[5];
return \''.
'&nbsp;<a href="'.$urlStats.'mySpace/myStudents.php?student=\'+options.rowId+\'">'.Display::return_icon('stats.png', get_lang('Reporting'), '', ICON_SIZE_SMALL).'</a>'.
' <a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"), ENT_QUOTES))."\'".')) return false;" href="?id='.$id.'&action=delete&user_id=\'+options.rowId+\'">'.$deleteIcon.'</a>\';
'&nbsp;<a href="'.$urlStats.'admin/usergroup_users.php?action=create_control_point&value=\'+value+\'&id='.$id.'&user_id=\'+options.rowId+\'">'.$controlPoint.'</a>'.
'&nbsp;<a href="'.$urlStats.'mySpace/myStudents.php?student=\'+options.rowId+\'">'.$reportingIcon.'</a>'.
' <a onclick="javascript:if(!confirm('."\'".addslashes(api_htmlentities(get_lang('ConfirmYourChoice'), ENT_QUOTES))."\'".')) return false;" href="?id='.$id.'&action=delete&user_id=\'+options.rowId+\'">'.$deleteIcon.'</a>\';
}
function extra_formatter(cellvalue, options, rowObject) {
var calendarName = rowObject[1];
var calendarId = rowObject[3];
var calendarId = rowObject[7];
if (calendarName == "") {
return \'<a href="'.
@ -224,6 +237,15 @@ function extra_formatter(cellvalue, options, rowObject) {
$deleteUrl = api_get_path(WEB_AJAX_PATH).'usergroup.ajax.php?a=delete_user_in_usergroup&group_id='.$id;
$form = new FormValidator(
'add_multiple_calendar',
'post',
api_get_self().'?id='.$id.'&action=add_multiple_users_to_calendar'
);
$calendarPlugin->getAddUserToCalendarForm($form);
$form->addHidden('user_list', '');
$form->addButtonSave(get_lang('Add'));
?>
<script>
$(function() {
@ -248,9 +270,41 @@ $(function() {
{ height:280, reloadAfterSubmit:false }, // add options
{ reloadAfterSubmit:false, url: "<?php echo $deleteUrl; ?>" }, // del options
{ width:500 } // search options
);
)
.navButtonAdd('#usergroups_pager',{
caption:"<?php echo addslashes($calendarPlugin->get_lang('UpdateCalendar')); ?>",
buttonicon:"ui-icon ui-icon-plus",
onClickButton: function(a) {
var userIdList = $("#usergroups").jqGrid('getGridParam', 'selarrrow');
if (userIdList.length) {
$(".modal-body #add_multiple_calendar_user_list").val(userIdList);
$('#myModal').modal();
} else {
alert("<?php echo addslashes(get_lang('SelectStudents')); ?>");
}
},
position:"last"
});
});
</script>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">
<?php echo $calendarPlugin->get_lang('AddMultipleUsersToCalendar'); ?>
</h4>
</div>
<div class="modal-body">
<?php echo $form->display(); ?>
</div>
</div>
</div>
</div>
<?php
$usergroup->showGroupTypeSetting = true;

@ -10,7 +10,6 @@ $cidReset = true;
require_once __DIR__.'/../inc/global.inc.php';
$this_section = SECTION_TRACKING;
$nameTools = get_lang('MyProgress');
api_block_anonymous_users();
@ -23,9 +22,15 @@ $(function() {
autoPlayPause: 2000
})
});
</script>";
$pluginCalendar = api_get_plugin_setting('learning_calendar', 'enabled') === 'true';
if ($pluginCalendar) {
$plugin = LearningCalendarPlugin::create();
$plugin->setJavaScript($htmlHeadXtra);
}
if (api_get_configuration_value('block_my_progress_page')) {
api_not_allowed(true);
}
@ -33,7 +38,7 @@ if (api_get_configuration_value('block_my_progress_page')) {
$user_id = api_get_user_id();
$courseUserList = CourseManager::get_courses_list_by_user_id($user_id);
$dates = $issues = '';
$sessionId = isset($_GET['session_id']) ? intval($_GET['session_id']) : 0;
$sessionId = isset($_GET['session_id']) ? (int) $_GET['session_id'] : 0;
$courseCode = isset($_GET['course']) ? Security::remove_XSS($_GET['course']) : null;
if (!empty($courseUserList)) {

@ -47,7 +47,7 @@ $used_quota_bytes = $quota_bytes;
if (!empty($session_list)) {
foreach ($session_list as $session_data) {
$quota_percentage = 0;
$quota_bytes = intval(DocumentManager::documents_total_space($course_id, null, $session_data['id']));
$quota_bytes = DocumentManager::documents_total_space($course_id, null, $session_data['id']);
if (!empty($quota_bytes)) {
$quota_percentage = round($quota_bytes / $total_quota_bytes, 2) * 100;
}
@ -67,7 +67,7 @@ if (!empty($group_list)) {
foreach ($group_list as $group_data) {
$quota_percentage = 0;
$my_group_id = $group_data['id'];
$quota_bytes = intval(DocumentManager::documents_total_space($course_id, $my_group_id, 0));
$quota_bytes = DocumentManager::documents_total_space($course_id, $my_group_id, 0);
if (!empty($quota_bytes)) {
$quota_percentage = round($quota_bytes / $total_quota_bytes, 2) * 100;
}

@ -530,7 +530,7 @@ class MultipleAnswerTrueFalseDegreeCertainty extends Question
'DegreeOfCertaintyVerySure',
];
$html .= '<ul class="chart-legend">';
foreach ($legendTitle as $i => $item){
foreach ($legendTitle as $i => $item) {
$html .= '<li><i class="fa fa-square square_color'.$i.'" aria-hidden="true"></i> '.get_lang($item).'</li>';
}
$html .= '</ul>';
@ -601,8 +601,7 @@ class MultipleAnswerTrueFalseDegreeCertainty extends Question
$returnHeight = false,
$groupCategoriesByBracket = false,
$numberOfQuestions = 0
)
{
) {
$topAndBottomMargin = 10;
$colorList = [
self::LEVEL_DARKRED,
@ -643,11 +642,9 @@ class MultipleAnswerTrueFalseDegreeCertainty extends Question
strpos($title, 'votre dernier résultat à ce test') > 0
) ? 100 : 80;
$html .= '<div class="row-chart">';
$html .= '<h4 class="chart-title">'.$titleDisplay.'</h4>';
$nbResponsesInc = 0;
if (isset($scoreList[4])) {
$nbResponsesInc += (int) $scoreList[4];
@ -670,7 +667,6 @@ class MultipleAnswerTrueFalseDegreeCertainty extends Question
$IgnoranceAnswers = sprintf(get_lang('IgnoranceAnswersX'), $nbResponsesIng);
$CorrectAnswers = sprintf(get_lang('CorrectAnswersX'), $nbResponsesCor);
$html .= '<div class="chart-grid">';
$explainHistoList = null;
@ -693,17 +689,17 @@ class MultipleAnswerTrueFalseDegreeCertainty extends Question
}
$sizeBar = ($scoreOnBottom * $sizeRatio * 2).'px;';
if ($i == 0 ) {
if ($i == 0) {
$html .= '<div class="item">';
$html .= '<div class="panel-certaint" style="min-height:'.$verticalLineHeight.'px; position: relative;">';
$html .= '<div class="answers-title">'.$IncorrectAnswers.'</div>';
$html .= '<ul class="certaint-list-two">';
} else if($i == 3){
} elseif ($i == 3) {
$html .= '<div class="item">';
$html .= '<div class="panel-certaint" style="height:'.$verticalLineHeight.'px; position: relative;">';
$html .= '<div class="answers-title">'.$CorrectAnswers.'</div>';
$html .= '<ul class="certaint-list-two">';
} else if($i==2){
} elseif ($i == 2) {
$html .= '<div class="item">';
$html .= '<div class="panel-certaint" style="height:'.$verticalLineHeight.'px; position: relative;">';
$html .= '<div class="answers-title">'.$IgnoranceAnswers.'</div>';
@ -727,7 +723,6 @@ class MultipleAnswerTrueFalseDegreeCertainty extends Question
$html .= '</div>';
$html .= '</div>';
if ($returnHeight) {
return [$html, $verticalLineHeight];
} else {
@ -760,8 +755,7 @@ class MultipleAnswerTrueFalseDegreeCertainty extends Question
$returnHeight = false,
$groupCategoriesByBracket = false,
$numberOfQuestions = 0
)
{
) {
$topAndBottomMargin = 10;
$colorList = [
self::LEVEL_DARKRED,

@ -13,8 +13,11 @@ switch ($action) {
if ($isAllowedToEdit) {
$userGroup = new UserGroup();
$userId = isset($_REQUEST['id']) ? $_REQUEST['id'] : 0;
$userIdList = explode(',', $userId);
$groupId = isset($_REQUEST['group_id']) ? $_REQUEST['group_id'] : 0;
$userGroup->delete_user_rel_group($userId, $groupId);
foreach ($userIdList as $userId) {
$userGroup->delete_user_rel_group($userId, $groupId);
}
}
break;
default:

@ -2996,9 +2996,10 @@ class DocumentManager
{
$TABLE_ITEMPROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY);
$TABLE_DOCUMENT = Database::get_course_table(TABLE_DOCUMENT);
$session_id = intval($session_id);
$group_id = intval($group_id);
$course_id = intval($course_id);
$session_id = (int) $session_id;
$group_id = (int) $group_id;
$course_id = (int) $course_id;
if (!$course_id) {
$course_id = api_get_course_int_id();
@ -3019,9 +3020,9 @@ class DocumentManager
INNER JOIN $TABLE_DOCUMENT AS docs
ON (docs.id = props.ref AND props.c_id = docs.c_id)
WHERE
props.c_id = $course_id AND
docs.c_id = $course_id AND
props.tool = '".TOOL_DOCUMENT."' AND
props.c_id = $course_id AND
docs.c_id = $course_id AND
props.tool = '".TOOL_DOCUMENT."' AND
props.visibility <> 2
$group_condition
$session_condition
@ -3031,7 +3032,7 @@ class DocumentManager
if ($result && Database::num_rows($result) != 0) {
$row = Database::fetch_row($result);
return $row[0];
return (int) $row[0];
} else {
return 0;
}

@ -492,7 +492,7 @@ function api_get_local_time(
}
if (is_numeric($time)) {
$time = intval($time);
$time = (int) $time;
if ($return_null_if_invalid_date) {
if (strtotime(date('d-m-Y H:i:s', $time)) !== (int) $time) {
return null;

@ -14,9 +14,12 @@ class Html_Quickform_Rule_MinText extends HTML_QuickForm_Rule
* @param int $count The minimum number of characters that the text should contain
* @return boolean True if text has the minimum number of chars required
*/
function validate($text, $count)
public function validate($text, $count)
{
$checkMinText = create_function('$a,$b', 'return strlen(utf8_decode($a)) >= $b;');
$checkMinText = function($a, $b) {
return strlen(utf8_decode($a)) >= $b;
};
return $checkMinText($text, $count);
}
}

@ -438,6 +438,13 @@ if (api_is_drh() && !api_is_platform_admin()) {
}
}
$pluginCalendar = api_get_plugin_setting('learning_calendar', 'enabled') === 'true';
if ($pluginCalendar) {
$plugin = LearningCalendarPlugin::create();
$plugin->setJavaScript($htmlHeadXtra);
}
Display::display_header($nameTools);
$token = Security::get_token();
@ -1837,9 +1844,7 @@ if ($allow && (api_is_drh() || api_is_platform_admin())) {
$table->display();
}
$pluginCalendar = api_get_plugin_setting('learning_calendar', 'enabled') === 'true';
if ($pluginCalendar) {
$plugin = LearningCalendarPlugin::create();
echo $plugin->getUserStatsPanel($student_id, $courses_in_session);
}

@ -108,8 +108,21 @@ class LearningCalendarPlugin extends Plugin
";
Database::query($sql);
$sql = "
CREATE TABLE IF NOT EXISTS learning_calendar_control_point(
id int not null AUTO_INCREMENT primary key,
user_id int(11) not null,
control_date date not null,
control_value int not null,
created_at datetime not null,
updated_at datetime not null
)
";
Database::query($sql);
$extraField = new ExtraField('lp_item');
$params = [
'display_text' => $this->get_lang('LearningCalendarOneDayMarker'),
'variable' => 'calendar',
'visible_to_self' => 1,
'changeable' => 1,
@ -240,6 +253,10 @@ class LearningCalendarPlugin extends Plugin
public function getCalendarsEventsByDate($calendarInfo, $start, $end, $type = 0, $getCount = false)
{
if (empty($calendarInfo)) {
if ($getCount) {
return 0;
}
return [];
}
@ -503,9 +520,11 @@ class LearningCalendarPlugin extends Plugin
];
Database::insert('learning_calendar_user', $params);
return true;
}
return true;
return false;
}
/**
@ -779,6 +798,19 @@ class LearningCalendarPlugin extends Plugin
return 0;
}
/**
* @param array $htmlHeadXtra
*/
public function setJavaScript(&$htmlHeadXtra)
{
$htmlHeadXtra[] = api_get_js('jqplot/jquery.jqplot.js');
$htmlHeadXtra[] = api_get_js('jqplot/plugins/jqplot.dateAxisRenderer.js');
$htmlHeadXtra[] = api_get_js('jqplot/plugins/jqplot.canvasOverlay.js');
$htmlHeadXtra[] = api_get_js('jqplot/plugins/jqplot.pointLabels.js');
$htmlHeadXtra[] = api_get_css(api_get_path(WEB_LIBRARY_PATH).'javascript/jqplot/jquery.jqplot.css');
}
/**
* @param int $userId
* @param array $courseAndSessionList
@ -795,7 +827,54 @@ class LearningCalendarPlugin extends Plugin
$html .= '<br />';
$html .= $this->get_lang('NumberDaysAccumulatedInLp').$stats['completed'];
$html .= '<br />';
$html .= $this->get_lang('NumberDaysInRetard').' '.$stats['diff'];
$html .= $this->get_lang('NumberDaysInRetard').' '.($stats['completed'] - $stats['user_event_count']);
}
$controlList = $this->getControlPointsToPlot($userId);
if (!empty($controlList)) {
$listToString = json_encode($controlList);
$date = $this->get_lang('Date');
$controlPoint = $this->get_lang('NumberOfDays');
$html .= '<div id="control_point_chart"></div>';
$html .= '<script>
$(document).ready(function(){
   var cosPoints = '.$listToString.';
   var plot1 = $.jqplot(\'control_point_chart\', [cosPoints], { 
//animate: !$.jqplot.use_excanvas,
     series:[{
showMarker:true,
    pointLabels: { show:true },
}],
       axes:{
        xaxis:{
           label: "'.$date.'",
renderer: $.jqplot.DateAxisRenderer,
tickOptions:{formatString: "%Y-%m-%d"},
tickInterval: \'30 day\',
        },
yaxis:{
           label: "'.$controlPoint.'",
max: 20,
min: -20,
        }
       },
canvasOverlay: {
show: true,
objects: [{
horizontalLine: {
name: \'0 mark\',
y: 0,
lineWidth: 2,
color: \'rgb(f, f, f)\',
shadow: false
}
}]
},
  });
});
</script>';
}
$html = Display::panel($html, $this->get_lang('LearningCalendar'));
@ -973,7 +1052,7 @@ class LearningCalendarPlugin extends Plugin
/**
* @param array $calendarInfo
*/
public function protectCalendar($calendarInfo = [])
public function protectCalendar(array $calendarInfo)
{
$allow = api_is_platform_admin() || api_is_teacher();
@ -989,4 +1068,88 @@ class LearningCalendarPlugin extends Plugin
}
}
}
/**
* @param int $userId
*
* @return array
*/
public function getControlPoints($userId)
{
$userId = (int) $userId;
$sql = "SELECT control_date, control_value FROM learning_calendar_control_point
WHERE user_id = $userId ORDER BY control_date";
$result = Database::query($sql);
$list = Database::store_result($result, 'ASSOC');
return $list;
}
/**
* @param int $userId
*
* @return array
*/
public function getControlPointsToPlot($userId)
{
$list = $this->getControlPoints($userId);
$points = [];
foreach ($list as $item) {
$points[] = [$item['control_date'], $item['control_value']];
}
return $points;
}
/**
* @param int $userId
* @param int $value
*/
public function addControlPoint($userId, $value)
{
$userId = (int) $userId;
$value = (int) $value;
$local = api_get_local_time();
$date = substr($local, 0, 10);
$sql = "SELECT id FROM learning_calendar_control_point
WHERE user_id = $userId AND control_date = '$date'";
$result = Database::query($sql);
if (Database::num_rows($result)) {
$params = [
'control_value' => $value,
'updated_at' => api_get_utc_datetime(),
];
$data = Database::fetch_array($result);
$id = $data['id'];
Database::update('learning_calendar_control_point', $params, ['id = ?' => $id]);
} else {
$params = [
'user_id' => $userId,
'control_date' => $date,
'control_value' => $value,
'created_at' => api_get_utc_datetime(),
'updated_at' => api_get_utc_datetime(),
];
Database::insert('learning_calendar_control_point', $params);
}
}
/**
* @param FormValidator $form
*/
public function getAddUserToCalendarForm(FormValidator &$form)
{
$calendars = $this->getCalendars(0, 1000, '');
if (empty($calendars)) {
echo Display::return_message(get_lang('NoData'), 'warning');
exit;
}
$calendars = array_column($calendars, 'title', 'id');
$calendars = array_map('strip_tags', $calendars);
$form->addSelect('calendar_id', get_lang('Calendar'), $calendars, ['disable_js' => true]);
}
}

@ -1,2 +1,2 @@
## Learning path calendar
## Learning calendar

@ -17,7 +17,7 @@ switch ($action) {
exit;
}
$endDate = isset($_REQUEST['end_date']) ? $_REQUEST['end_date'] : '';
if (empty($endDate)) {
if ($startDate == $endDate) {
// One day
$plugin->toogleDayType($calendarId, $startDate);
} else {

@ -14,3 +14,9 @@ $strings['EventTypeTaken'] = 'Taken';
$strings['EventTypeExam'] = 'Exam';
$strings['EventTypeFree'] = 'Free';
$strings['CourseHoursDuration'] = 'Course hours duration';
$strings['LearningCalendarOneDayMarker'] = 'Learning calendar one day marker';
$strings['ControlPointAdded'] = 'Control point added';
$strings['NumberOfDays'] = 'Number of days';
$strings['Date'] = 'Date';
$strings['AddMultipleUsersToCalendar'] = 'Add multiple users to a calendar';
$strings['UpdateCalendar'] = 'Update calendar';

@ -37,16 +37,16 @@
customDayRenderer: function(e) {
$(e).parent().css('background-color', 'green');
},
clickDay: function(e) {
var dateString = moment(e.date).format("YYYY-MM-DD");
$.ajax({
type: "GET",
url: "{{ ajax_url }}&a=toggle_day&start_date="+dateString+"&end_date=",
success: function(returnValue) {
getEvents(e);
}
});
},
{#clickDay: function(e) {#}
{#var dateString = moment(e.date).format("YYYY-MM-DD");#}
{#$.ajax({#}
{#type: "GET",#}
{#url: "{{ ajax_url }}&a=toggle_day&start_date="+dateString+"&end_date=",#}
{#success: function(returnValue) {#}
{#getEvents(e);#}
{#}#}
{#});#}
{#},#}
selectRange: function(e) {
var startString = moment(e.startDate).format("YYYY-MM-DD");
var endString = moment(e.endDate).format("YYYY-MM-DD");

Loading…
Cancel
Save