我在日历插件上应用的JavaScript代码工作到11月,但不是12月

时间:2015-12-15 08:39:38

标签: javascript angularjs

这是代码。

.controller('CalendarCtrl',function($scope,$state,ProjectServices,$filter){

  var _date = $filter('date')(new Date(), 'yyyy-MM-dd');
    $scope.data = { embeddedDate: _date };
    $scope.userData=$state.params.username;

     $scope.employeeName = $state.params.employeeName;
      $scope.mgrApprvemployeeId = $state.params.employeeID;
      $scope.projectName = $state.params.projectName;

       if(localStorage.getItem('employeeInfo')){
        var employeeDetails = JSON.parse(localStorage.getItem('employeeInfo'));

         if ($scope.mgrApprvemployeeId) {
          $scope.calprofile= true;
            employeeId = $scope.mgrApprvemployeeId;
            $scope.mgrRsrcDetails = true;
        }
        else {
          $scope.calprofile= false;
          employeeId = employeeDetails.employeeId;
          $scope.mgrRsrcDetails = false;
        };
      };

  //localStorage.setItem('userselecteddate',JSON.stringify(data));
  $scope.onTimeSet=function(newDate,oldDate){
    var date= new Date(newDate),
    day = (date.getDate() < 10 ? '0' : '') + date.getDate();
    //day=date.getDate(),
    //month=date.getMonth()+1,
    month = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
    year=date.getFullYear();
   // week = date.getWeeks();
    if(date.getDay() == 6 || date.getDay() == 0) 
    //if (true) 
    {
      alert('You are submitting for a weekend!'); 
    };
  selectedDateUser=year+"-"+month+"-"+day;
     $scope.data = { embeddedDate: selectedDateUser};
     if (!$scope.mgrApprvemployeeId) {
        $state.go('app.dayview',{calendarDate:selectedDateUser,username:$scope.userData}); 
    } else {
      $state.go('app.manager-dayview',{calendarDate:selectedDateUser,userEmployeeId:$scope.mgrApprvemployeeId,userEmployeeName:$scope.employeeName,userProjectName:$scope.projectName}); 
    };
  }

  $scope.beforeRender = function ($view, $dates, $leftDate, $upDate, $rightDate) {

    var todaysDate = new Date();
    var currentMonth = todaysDate.getMonth()+1;
    var currentYear = todaysDate.getFullYear();
    var currentDay = todaysDate.getDate();
    var rightDate = $rightDate.utcDateValue;
    var rightFormDate = new Date(rightDate);
    var selectedMonth = rightFormDate.getMonth();
    var selectedYear = rightFormDate.getFullYear();
    if (currentMonth == selectedMonth && currentYear == selectedYear) {
      $rightDate.selectable = false;
    };


 angular.element(document).ready(function () {

          ProjectServices.getEmployeeEffortHrs(employeeId).then(function(data) {
                  angular.forEach(data, function(data) {
                    //console.log(data.effort_date);
                      var effort_date = new Date(data.effort_date);
                      var date = effort_date.getDate();
                      var monthService = effort_date.getMonth()+1;
                      var approvedStatus = data.approveStatus;
                     // datesArray.push(date);
                      //console.log(date);
                      var totalEffortHours = data.total_effort;
                      jQuery('div.datetimepicker table.day-view  tbody tr td').each(function(index){
                       // console.log(index);
                        //console.log('1234');
                        var str = $(this).text();
                          if((str.substr(0,str.indexOf(' ')) == date) && selectedMonth == monthService){
                           //$(this).removeClass("pending-hrs").addClass("filled-hrs");
                           // $(this).removeClass('pending-hrs');
                           // $(this).addClass('filled-hrs');
                           if(totalEffortHours <= 8){
                               $(this).removeClass('pending-hrs');
                               $(this).addClass('filled-hrs');
                               if (!$scope.mgrApprvemployeeId) {
                               $dates[index].selectable = false;
                               };
                             }else {
                               $(this).removeClass('pending-hrs');
                               $(this).addClass('holiday-leave');
                               if (!$scope.mgrApprvemployeeId) {
                                 $dates[index].selectable = false;
                                };
                             };

                           // e.stopPropagation();
                           // $(this).html(date + <br/> + totalEffortHours);
                             if(approvedStatus == "Reject"){
                            var stringDisplay = date+"<span class='rejected-timesheet'>"+"Rejected"+" </span>  ";
                            //$(this).removeClass('disabled');
                            $dates[index].selectable = true;

                          } else{
                            var stringDisplay = date+"<span>"+totalEffortHours +" hrs</span>";
                            //$(this).addClass('disabled');
                            $(this).selectable = true;
                          };
                            var escaped = $(this).text(stringDisplay).text();
                            $(this).html(escaped.replace(/\n/g, '<br />'));
                            //$(this).html($(this).html().replace(/\n/g,'<br/>'));
                          }


                      });

                    /*if (calendarDateDay == date) {
                      alert(111);
                      $dates[j].display =  $dates[j].display +  " <br/>" + totalEffortHours;
                    };  */
                   }); 
          });

for (var j=0; j < 37; j++) {
      var calendarUtcDates = $dates[j].utcDateValue;
      var calendarDates = new Date(calendarUtcDates);
      var calendarDateDay = calendarDates.getDate();
      var calendarDateMonth = calendarDates.getMonth()+1;
      var calendarDateYear = calendarDates.getFullYear();
      if (calendarDateMonth == selectedMonth) 
        {
          jQuery('div.datetimepicker table.day-view  tbody tr td').each(function(){
              if(($(this).text() == $dates[j].display) &&  calendarDateMonth == selectedMonth){
                $(this).addClass('pending-hrs');

              }
              if (currentMonth == calendarDateMonth && currentYear == calendarDateYear && currentDay <= calendarDateDay ) {
                $dates[j].future = true;
            }

           });   


          if (currentMonth == calendarDateMonth && currentYear == calendarDateYear && currentDay > calendarDateDay ) {
               $dates[j].display =  $dates[j].display +  "<span> Pending</span>";


            }else if(currentMonth > calendarDateMonth && currentYear == calendarDateYear){
                $dates[j].display =  $dates[j].display +  "<span> Pending</span>";
            };
       };  

       if (currentMonth == calendarDateMonth && currentYear == calendarDateYear && currentDay == calendarDateDay ) 
        {
          //console.log('today date');
          $dates[j].display =  $dates[j].display +  "<span>Today</span>";

        };


}

});


}
}).filter("sanitize", ['$sce', function($sce) {
      return function(htmlCode) {
        return $sce.trustAsHtml(htmlCode);
      }
    }])

上面的代码给出了输出,好像用户用绿色显示了它显示的工作量。它是通过添加一个类来实现的。如果管理员拒绝用户的努力,则应该以另一种颜色显示。它是通过添加跨度来实现的。如果用户的努力未决,则应以其他颜色显示。它也是通过添加一个类来完成的。但这些只能工作到11月。只在十二月它不起作用。请有人帮帮我。

0 个答案:

没有答案