unserver-unify
Version:
72 lines (71 loc) • 2.48 kB
JavaScript
;
angular.module('bamboo.mystudy').controller('MySessionsCtrl', function(ApiService, loginService, $scope) {
var _self = this;
this.dayList = [];
var today = new Date();
var lastMonth = moment(today).add(-1, 'months').toDate();
var lastWeek = moment(today).add(-1, 'weeks').toDate();
this.dayList.push(lastMonth);
this.dayList.push(lastWeek);
this.dayList.push(today);
this._start;
this.getMySession = function(tableState) {
var limit = tableState.pagination.number || 10;
var start = tableState.pagination.start;
var info = {
start: start,
limit: limit,
sort: tableState.sort,
action: 'getusersessions',
};
if (_self._start) {
info._start = _self._start;
}
// console.log(info);
ApiService.post('/coursesession', info).then(function(data) {
if (data.data.success) {
var result = data.data.data;
var _sessions = result.items;
// console.log(_sessions);
var eventdata = [];
var checkdate;
if (_self._start) {
checkdate = new Date(_self._start);
}
angular.forEach(_sessions, function(item, idx) {
for (var i = 0; i < item.repeatCounter; i++) {
var time = item.start;
switch (item.repeatType) {
case 'week':
time = moment(item.start).add(i, 'weeks').toDate();
break;
case 'month':
time = moment(item.start).add(i, 'months').toDate();
break;
case 'day':
time = moment(item.start).add(i, 'days').toDate();
break;
}
// console.log(checkdate);
if (!checkdate || checkdate < time) {
var info = angular.copy(item);
info.start = time;
var day = time.toISOString().substring(0, 10);
// console.log(day);
// console.log(item.attended);
if (item.attended&&item.attended[day]) {
info.attend = true;
}
delete info.attended;
eventdata.push(info);
}
}
});
_self.sessions = eventdata;
// console.log(_self.sessions);
$scope.total = result.counter;
tableState.pagination.numberOfPages = Math.ceil(result.counter / limit);
}
});
}
});