123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641 |
- starter.controller('ScheduleCtrl', function ($rootScope, $scope, $state, $cordovaCalendar, global, Schedule, Tool) {
- $scope.goBack = function () {
- global.goBack();
- }
- global.fetch_user().then(function () {
- getscheduledata();
- })
- $scope.toadd = function () {
- $state.go('schedule-create', {
- id: -1
- });
- }
- $scope.toman = function () {
- $state.go('schedule-man');
- }
- $scope.todetails = function (details) {
- Schedule.scheduleDetails = details;
- $state.go('schedule-details', {
- id: details.id
- });
- }
- $scope.doRefresh = function () {
- global.refresh = true;
- getscheduledata();
- }
- $scope.loadMore = function () {
- if ($scope.schedules != undefined && $scope.schedules.next != null) {
- Tool.get($scope.schedules.next).then(function (data) {
- _.each(data.results, function (item) {
- $scope.schedules.results.push(item);
- })
- $scope.schedules.next = data.next;
- $scope.schedules.previous = data.previous;
- }).finally(function () {
- $scope.$broadcast('scroll.infiniteScrollComplete');
- $scope.loading = false;
- });
- } else {
- $scope.$broadcast('scroll.infiniteScrollComplete');
- }
- }
- $scope.moreCanBeLoaded = function () {
- return $scope.schedules != undefined && $scope.schedules.next != null ? true : false;
- }
- function getscheduledata() {
- if (global.user.token != "") {
- if ($scope.schedules == undefined) {
- $scope.loading = true;
- }
- Schedule.schedule.get({'type': 'receive'}, function (res) {
- $scope.schedules = res;
- }, function (err) {
- alert(JSON.stringify(err));
- }).$promise.finally(function () {
- $scope.$broadcast('scroll.refreshComplete');
- $scope.loading = false;
- });
- }
- }
- enter = $scope.$on("$ionicView.enter", function (event, data) {
- if (data.fromCache && $rootScope.commons.refresh) {
- $rootScope.commons.refresh = false;
- getscheduledata();
- }
- })
- $scope.$on("$destroy", function () {
- enter = null;
- })
- // function getscheduledata() {
- // if (global.user.token != "") {
- // Schedule.getReceive().then(function (data) {
- // data_unover = [];
- // data_over = [];
- // _.each(data, function (item) {
- // var isover = false;
- // var currentDateTime = new Date();
- // if ((item.end_date != null && new Date(Date.parse(item.end_date)) < currentDateTime) ||
- // (item.repeat_type == 0 && item.start_date != null && new Date(Date.parse(item.start_date)) < currentDateTime)) {
- // isOver = true;
- // } else {
- // isOver = false;
- // }
- // if (isOver) {
- // //已过期
- // data_over.push(item);
- // } else {
- // //未过期
- // data_unover.push(item);
- // }
- //
- // });
- //
- // data_unover = _.sortBy(data_unover, 'execute_dd'); //升序
- // data_over = _.sortBy(data_over, 'execute_dd').reverse(); //降序
- // data = [];
- // _.each(data_unover, function (item) {
- // data.push(item);
- // });
- // _.each(data_over, function (item) {
- // data.push(item);
- // });
- // $scope.Schedule = data;
- // }, function (error) {
- // alert(JSON.stringify(error));
- // });
- // }
- // }
- })
- .controller('SchedulePostedCtrl', function ($rootScope, $scope, $state, global, Schedule, Tool) {
- global.fetch_user().then(function () {
- getscheduledata();
- })
- $scope.toadd = function () {
- $state.go('schedule-create');
- }
- $scope.todetails = function (id) {
- $state.go('schedule-details', {
- id: id
- });
- }
- $scope.doRefresh = function () {
- global.refresh = true;
- getscheduledata();
- }
- $scope.loadMore = function () {
- if ($scope.schedules != undefined && $scope.schedules.next != null) {
- Tool.get($scope.schedules.next).then(function (data) {
- _.each(data.results, function (item) {
- $scope.schedules.results.push(item);
- })
- $scope.schedules.next = data.next;
- $scope.schedules.previous = data.previous;
- }).finally(function () {
- $scope.$broadcast('scroll.infiniteScrollComplete');
- $scope.loading = false;
- });
- } else {
- $scope.$broadcast('scroll.infiniteScrollComplete');
- }
- }
- $scope.moreCanBeLoaded = function () {
- return $scope.schedules != undefined && $scope.schedules.next != null ? true : false;
- }
- function getscheduledata() {
- if (global.user.token != "") {
- if ($scope.schedules == undefined) {
- $scope.loading = true;
- }
- Schedule.schedule.get({'type': 'release'}, function (res) {
- $scope.schedules = res;
- }, function (err) {
- alert(JSON.stringify(err));
- }).$promise.finally(function () {
- $scope.$broadcast('scroll.refreshComplete');
- $scope.loading = false;
- });
- }
- }
- enter = $scope.$on("$ionicView.enter", function (event, data) {
- if (data.fromCache && $rootScope.commons.refresh) {
- $rootScope.commons.refresh = false;
- getscheduledata();
- }
- })
- $scope.$on("$destroy", function () {
- enter = null;
- })
- })
- .controller('ScheduleCreateCtrl', function ($rootScope, $scope, $state, $ionicHistory, $cordovaDatePicker, $cordovaCalendar, global, Schedule, Member, showPopup, Tool) {
- var id = $state.params['id'];
- var isModified = false;
- $scope.repeatfreqWeekDayHt = {
- "1": false,
- "2": false,
- "3": false,
- "4": false,
- "5": false,
- "6": false,
- "0": false
- }
- $scope.repeatfreqMonthDayHt = {
- "1": false,
- "2": false,
- "3": false,
- "4": false,
- "5": false,
- "6": false,
- "7": false,
- "8": false,
- "9": false,
- "10": false,
- "11": false,
- "12": false,
- "13": false,
- "14": false,
- "15": false,
- "16": false,
- "17": false,
- "18": false,
- "19": false,
- "20": false,
- "21": false,
- "22": false,
- "23": false,
- "24": false,
- "25": false,
- "26": false,
- "27": false,
- "28": false,
- "29": false,
- "30": false,
- "31": false
- }
-
- $scope.data = {
- content: null,
- start_date: getDateTimeYMDHM(1),
- start_date_title: null,
- repeat_type: 0,
- freq: '',
- repeat_freq_title: '不重复',
- end_date: null,
- repeat_end_date_type: 1,
- notification_type: 1,
- schedulemembers: []
- }
- $scope.popup = {
- isPopup: false
- }
- if (id > 0) {
- $scope.data = Tool.cloneObj(Schedule.scheduleDetails);
- $scope.data.freq = $scope.data.freq.split(',');
- if ($scope.data.repeat_type == 2) {
- setRepeatByFreq($scope.data.freq, $scope.repeatfreqWeekDayHt);
- } else if ($scope.data.repeat_type == 3) {
- setRepeatByFreq($scope.data.freq, $scope.repeatfreqMonthDayHt);
- }
- $scope.data.repeat_freq_title = Schedule.getRepeatFreqTitle($scope.data.repeat_type, $scope.data.freq);
- if ($scope.data.end_date == null) {
- $scope.data.repeat_end_date_type = 1;
- } else {
- $scope.data.repeat_end_date_type = 2;
- }
- var content_old = $scope.data.content;
- var date_old = $scope.data.start_date;
- }
- $scope.data.start_date_title = Schedule.getDateTimeTitle($scope.data.start_date);
- $scope.warningHt = Schedule.notificationType;
- $scope.repeatHt = Schedule.repeatType;
- $scope.weekDayHt = Schedule.weekDay;
- $scope.repeatfreqstyleunactive = {
- "border": "1px solid #ddd",
- "background-color": "#fff"
- }
- $scope.repeatfreqstyleactive = {
- "border": "1px solid #ddd",
- "background-color": "red"
- }
- $scope.goBack = function () {
- if (id < 0 && ($scope.data.content != null || $scope.data.schedulemembers.length > 0)) {
- showPopup.confirm('是否取消创建?', '是', '否').then(function (res) {
- if (res)
- global.goBack();
- });
- } else {
- global.goBack();
- }
- }
- $scope.selectmember = function () {
- Member.resourcemember = [];
- _.each($scope.data.schedulemembers, function (user) {
- Member.resourcemember.push(user);
- })
- Member.titlename = '选择成员'
- Member.disabled = false;
- $state.go('selectmember');
- }
- //选择重复 重复类型(0:永不,1:每天 2:每周,3:每月,4:每年)
- showPopup.modalTemplate('templates/modal-selectrepeatid.html', 'slide-in-right', $scope).then(function (modal) {
- $scope.repeat_id_modal = modal;
- });
- $scope.showRepeatIdModal = function () {
- $scope.repeat_id_modal.show();
- $rootScope.commons.modal = $scope.repeat_id_modal;
- }
- $scope.closeRepeatIdModal = function () {
- //0:永不,1:每天 2:每周,3:每月,4:每年
- if ($scope.data.repeat_type == "2") {
- $scope.data.freq = getFreqByRepeat($scope.repeatfreqWeekDayHt);
- } else if ($scope.data.repeat_type == "3") {
- $scope.data.freq = getFreqByRepeat($scope.repeatfreqMonthDayHt);
- }
- $scope.data.repeat_freq_title = Schedule.getRepeatFreqTitle($scope.data.repeat_type, $scope.data.freq);
- $rootScope.commons.modal.hide();
- }
- $scope.changeRepeatId = function (repeat_type) {
- //0:永不,1:每天 2:每周,3:每月,4:每年
- if (repeat_type == "1") {
- $scope.data.freq = 1;
- } else if (repeat_type == "2") {
- $scope.repeatfreqWeekDayHt[new Date().getDay()] = true;
- } else if (repeat_type == "3") {
- $scope.repeatfreqMonthDayHt[new Date().getDate()] = true;
- }
- $scope.data.repeat_type = repeat_type;
- }
- $scope.changeDayRepeatfreqIdColor = function (freq) {
- $scope.data.freq = freq;
- }
- $scope.changeWeekDayRepeatfreqIdColor = function (freq) {
- if (!(_.compact($scope.repeatfreqWeekDayHt).length == 1 && $scope.repeatfreqWeekDayHt[freq]))
- $scope.repeatfreqWeekDayHt[freq] = !$scope.repeatfreqWeekDayHt[freq];
- }
- $scope.changeMonthDayRepeatfreqIdColor = function (freq) {
- if (!(_.compact($scope.repeatfreqMonthDayHt).length == 1 && $scope.repeatfreqMonthDayHt[freq]))
- $scope.repeatfreqMonthDayHt[freq] = !$scope.repeatfreqMonthDayHt[freq];
- }
- //选择结束重复(null:一直重复)
- showPopup.modalTemplate('templates/modal-selectrepeatenddd.html', 'slide-in-right', $scope).then(function (modal) {
- $scope.repeat_end_dd_modal = modal;
- });
- $scope.showRepeatendddModal = function () {
- $scope.repeat_end_dd_modal.show();
- $rootScope.commons.modal = $scope.repeat_end_dd_modal;
- }
- $scope.closeRepeatendddModal = function () {
- $rootScope.commons.modal.hide();
- }
- $scope.changeRepeatendddId = function (repeat_end_date_type) {
- $scope.data.repeat_end_date_type = repeat_end_date_type;
- $scope.data.end_date = null;
- $scope.closeRepeatendddModal();
- }
- //选择提醒 提醒类型(0:不提醒,1:事件发生时,2:提前5分钟,3:提前15分钟,4:提前30分钟,5:提前1小时,6:提前2小时,7:提前5小时)
- showPopup.modalTemplate('templates/modal-selectwarningid.html', 'slide-in-right', $scope).then(function (modal) {
- $scope.warning_id_modal = modal;
- });
- $scope.showWarningIdModal = function () {
- $scope.warning_id_modal.show();
- $rootScope.commons.modal = $scope.warning_id_modal;
- }
- $scope.closeWarningIdModal = function () {
- $rootScope.commons.modal.hide();
- }
- $scope.changeWarningId = function (notification_type) {
- $scope.data.notification_type = notification_type;
- $scope.closeWarningIdModal();
- }
- $scope.addSchedule = function () {
- if (Schedule.checkSchedule($scope.data)) {
- showPopup.showLoading(1, '正在提交');
- if (id < 0) {
- createSchdule();
- } else {
- // if (isModified) { // todo :edit change is modified
- Schedule.deleteEvent(content_old, date_old);
- createSchdule();
- // }
- }
- }
- }
- $scope.chooseDate = function () {
- var options = {
- mode: 'date',
- date: $scope.data.end_date != null ? new Date($scope.data.end_date) : new Date(),
- androidTheme: 3
- };
- $cordovaDatePicker.show(options).then(function (date) {
- if (date == undefined) return;
- $scope.data.end_date = date;
- $scope.data.repeat_end_date_type = 2;
- $scope.closeRepeatendddModal();
- }, function (cancel) {
- $scope.data.end_date = null;
- $scope.data.repeat_end_date_type = 1;
- });
- }
- $scope.chooseStartddDate = function () {
- var options = {
- mode: 'datetime',
- date: new Date($scope.data.start_date),
- androidTheme: 3
- };
- $cordovaDatePicker.show(options).then(function (date) {
- if (date == undefined) return;
- $scope.data.start_date = date;
- $scope.data.start_date_title = Schedule.getDateTimeTitle($scope.data.start_date);
- });
- }
- var watch = $scope.$watch('data', function (n, o) {
- if (n == o)
- return;
- isModified = true;
- }, true);
- var enter = $scope.$on("$ionicView.enter", function () {
- selectMember();
- });
- $scope.$on("$destroy", function () {
- if ($rootScope.commons.modal)
- $rootScope.commons.modal = null;
- $scope.repeat_end_dd_modal.remove();
- $scope.warning_id_modal.remove();
- $scope.repeat_id_modal.remove();
- enter = null;
- watch();
- })
- function createSchdule() {
- if ($scope.data.repeat_end_date_type == 1)
- $scope.data.end_date = null;
- var data = _.pick($scope.data, 'content', 'start_date', 'repeat_type', 'freq', 'end_date', 'notification_type', 'schedulemembers');
- if (data.freq.length > 0)
- data.freq = data.freq.join(',');
- data.schedulemembers = _.map(data.schedulemembers, function (user) {
- return user.user_id;
- })
- if (id < 0) {
- Schedule.schedule.save(data, function (data) {
- $rootScope.commons.refresh = true;
- Schedule.createEventWithOptions($scope.data.content, $scope.data.start_date, $scope.data.end_date, $scope.data.repeat_type, $scope.data.freq, $scope.data.notification_type);
- showPopup.hideLoading();
- $ionicHistory.goBack();
- })
- } else {
- data.id = id;
- Schedule.schedule.update(data, function (data) {
- $rootScope.commons.refresh = true;
- Schedule.createEventWithOptions($scope.data.content, $scope.data.start_date, $scope.data.end_date, $scope.data.repeat_type, $scope.data.freq, $scope.data.notification_type);
- showPopup.hideLoading();
- $ionicHistory.goBack();
- })
- }
- }
- function getFreqByRepeat(repeat) {
- var freq = []
- _.each(repeat, function (value, key) {
- if (value) freq.push(parseInt(key));
- })
- return freq;
- }
- function setRepeatByFreq(freq, repeat) {
- _.each(freq, function (f) {
- repeat[f] = !repeat[f];
- })
- }
- function selectMember() {
- if (Member.selectedemplst.length > 0) {
- $scope.data.schedulemembers = [];
- console.log(Member.selectedemplst);
- _.each(Member.selectedemplst, function (item) {
- $scope.data.schedulemembers.push({
- user_id: item.user_id,
- username: item.username,
- deptname: item.depname,
- degree: item.degree
- })
- });
- $scope.sel_member_names = Schedule.getMemberTitle($scope.data.schedulemembers);
- Member.selectedemplst = [];
- }
- }
- function getDateTimeYMDHM(add_hours) {
- var date = new Date()
- date.setHours(date.getHours() + add_hours);
- date.setMinutes(0);
- return date;
- }
- })
- .controller('ScheduleDetailsCtrl', function ($rootScope, $scope, $state, $ionicHistory, $ionicPopover, Schedule, global, showPopup, Tool) {
- var id = $state.params['id'];
- $scope.popup = {
- isPopup: false,
- }
- var view = $ionicHistory.backView();
- global.fetch_user().then(function () {
- if (view) {
- $scope.details = Schedule.scheduleDetails;
- // $scope.execute_dd_title = Schedule.getDateTimeTitle(res.execute_dd);
- $scope.scheduleMemberNames = Schedule.getMemberTitle($scope.details.schedulemembers);
- $scope.repeat_req_title = Schedule.getRepeatFreqTitle($scope.details.repeat_type, $scope.details.freq);
- $scope.isShowRemoveMember = _.find($scope.details.schedulemembers, function (user) {
- return user.user_id == global.user.usrid;
- });
- $scope.isOver = false;
- if ($scope.details.end_date != null && new Date() > new Date($scope.details.end_date))
- $scope.isOver = true;
- } else {
- getscheduledetails();
- }
- });
- $ionicPopover.fromTemplateUrl('templates/detailsmenu.html', {
- scope: $scope,
- }).then(function (popover) {
- $scope.popover = popover;
- });
- $scope.deleteSchedule = function () {
- $scope.popover.hide();
- $scope.popup.isPopup = true;
- showPopup.confirm('是否删除该日程?', '是', '否').then(function (res) {
- if (res) {
- Schedule.deleteEvent($scope.details.content, $scope.details.start_date);
- Schedule.schedule.delete({'id': id}, function () {
- $rootScope.commons.refresh = true;
- $ionicHistory.goBack();
- });
- }
- });
- }
- $scope.deleteMember = function () {
- $scope.popup.isPopup = true;
- showPopup.confirm('退出后,你将不再参与该日程', '是', '否').then(function (res) {
- if (res) {
- Schedule.deleteEvent($scope.details.content, $scope.details.start_date);
- Schedule.schedulemenber.delete({'schedule_id': id}).then(function () {
- $rootScope.commons.refresh = true;
- $ionicHistory.goBack();
- });
- }
- });
- }
- $scope.edit = function () {
- $scope.popover.hide();
- $state.go('schedule-create', {
- 'id': $scope.details.id
- })
- }
- $scope.doRefresh = function () {
- global.refresh = true;
- getscheduledetails();
- }
- function getscheduledetails() {
- if (global.user.token != "") {
- if ($scope.details == undefined) {
- $scope.loading = true;
- }
- Schedule.schedule.get({'id': id}, function (res) {
- Schedule.scheduleDetails = _.clone(res);
- console.log(res);
- $scope.details = res;
- // $scope.execute_dd_title = Schedule.getDateTimeTitle(res.execute_dd);
- $scope.scheduleMemberNames = Schedule.getMemberTitle(res.schedulemembers);
- $scope.repeat_req_title = Schedule.getRepeatFreqTitle(res.repeat_type, res.freq);
- $scope.isShowRemoveMember = _.find(res.schedulemembers, function (user) {
- return user.user_id == global.user.usrid;
- });
- $scope.isOver = false;
- if ($scope.details.end_date != null && new Date() > new Date($scope.details.end_date))
- $scope.isOver = true;
- // //是否过期
- // var currentDateTime = new Date();
- // var executeddTime = new Date(Date.parse($scope.data.execute_dd));
- // if (($scope.data.end_date != null && new Date(Date.parse($scope.data.end_date)) < currentDateTime) && currentDateTime > executeddTime ||
- // ($scope.data.repeat_type == 0 && $scope.data.start_date != null && new Date(Date.parse($scope.data.start_date)) < currentDateTime)) {
- // $scope.isOver = true;
- // } else {
- // $scope.isOver = false;
- // }
- }, function (err) {
- alert(JSON.stringify(err));
- }).$promise.finally(function () {
- $scope.$broadcast('scroll.refreshComplete');
- $scope.loading = false;
- })
- }
- }
- enter = $scope.$on("$ionicView.enter", function (event, data) {
- if (data.fromCache && $rootScope.commons.refresh) {
- if (view == null)
- $rootScope.commons.refresh = false;
- getscheduledetails();
- }
- });
- $scope.$on("$destroy", function () {
- $scope.popover.remove();
- enter = null;
- });
- });
|