Пример #1
0
    app.controller('mainController',['$scope','$q','$route','$timeout','routeConfig','resource', 'mLoading','mNotice','$routeParams',function($scope,$q,$route,$timeout,routeConfig,resource,mLoading,mNotice,$routeParams){
        var userDao = resource('/user'),
            semesterDao = resource('/school/semester'),
            IGrow = window['IGrow'] || {},
            hash = location.hash || '',
            index,
            semesterPromise,
            userPromise,
            errors = 0,
            failCallback = function(result){
                errors++;
                if(result && result.message){
                    mNotice(result.message,'error');
                }
                $('.hello-everyone').html('sorry,进入失败');
            };
        
        
        $('body').append('<div class="hello-everyone" style="text-align:center;padding:15px;">正在进入...</div>');
        // iphone下传过来的hash会影响路由
        index = hash.indexOf('%23wechat_redirect');
        if(index>-1){
            location.hash = hash.substring(0,index);
        }
        index = hash.indexOf('#/wechat_redirect');
        if(index>-1){
            location.hash = hash.substring(0,index);
        }

        // 假如是未登录跳转过来的
        var hashValue = Utils.getQuery('hash');
        if(hashValue) {
            location.href = 'http://m.igrow.cn/main#/'+hashValue;
            return;
        }


        // 获取当前学期
        semesterPromise = semesterDao.list({},function(result){
            var semesterList = result.data || [];

            IGrow.semester = IGrow.getCurrentSemester(semesterList); 
            if(!IGrow.semester){
                mNotice('当前学期不存在','error');
                errors ++;
            }
            

        },function(result){
            failCallback(result);
        });
        // 获取当前用户
        userPromise = userDao.get({},function(result){
            var user = result.data || {};

            IGrow.user = user;
            

        },function(result){
            failCallback(result);
        });

        $q.all( [semesterPromise,userPromise] ).then(function(){
            var studentDao,teacherDao;
            
            if(errors>0){
                failCallback();
                return;
            }
            // 若是学生
            if(IGrow.user.typeid == 4) {
                studentDao = resource('/school/student');
                studentDao.get( { _relatedfields : 'grade.id,grade.name' } ).then(function(result){
                    var student = result.data || {};

                    IGrow.student = student;
                    initRouteConifg();

                }, function(result){
                    failCallback(result);
                });

            } else {
                teacherDao = resource('/school/teacher');
                teacherDao.get( { _relatedfields:'classes' } ).then(function(result){
                    var teacher = result.data || {};

                    IGrow.teacher = teacher;
                    initRouteConifg();

                }, function(result){
                    failCallback(result);
                });
            }
                
                

        }, function(){
            
        });


        function initRouteConifg(){

        
            // 假如没有路由 则显现完整菜单
            if(!location.hash){
                $scope.flag = true;
            }
            
            $('.hello-everyone').remove();
            // 配置路由
            routeConfig();
            $route.reload();
        }
            
       
        
    }]);
Пример #2
0
    app.controller('mainController',['$scope','$q','$route','$timeout','routeConfig','resource', 'mLoading','mNotice','$routeParams',function($scope,$q,$route,$timeout,routeConfig,resource,mLoading,mNotice,$routeParams){
        var userDao = resource('/user'),
            semesterDao = resource('/school/semester'),
            teacherDao = resource('/school/teacher'),
            teacherClassDao = resource('/school/teacher/class'),
            gradeDao = resource('/school/grade'),
            IGrow = window['IGrow'] || {},
            hash = location.hash || '',
            new_hash = hash ,
            is_weixin_hash = false,
            index,
            semesterPromise,
            userPromise,
            errors = 0,
            failCallback = function(result){
                errors++;
                if(result && result.message){
                    mNotice(result.message,'error');
                }
                $('.hello-everyone').html('sorry,进入失败');
            };
        
        
        
        // iphone下传过来的hash会影响路由
        
        index = hash.indexOf('wechat_redirect');
        if(index>-1){
            is_weixin_hash = true;
            new_hash = decodeURIComponent(hash);
            new_hash = new_hash.replace(/#wechat_redirect/g,'');
            new_hash = new_hash.replace(/#\//g,'');
            
        }
        if(is_weixin_hash){
            location.replace('http://m.igrow.cn/weixin#/'+new_hash);
            return;
        }

       
        var mode = Utils.getQuery('mode');
        if(mode && mode =='demo') {
            window.API.mode = 'demo';
        }
    
    
        // 正式进入
        $('body').append('<div class="hello-everyone" style="text-align:center;padding:15px;">正在进入...</div>');

        // 获取当前学期
        semesterPromise = semesterDao.list({},function(result){
            var semesterList = result.data || [];

            IGrow.semester = IGrow.getCurrentSemester(semesterList); 
            if(!IGrow.semester){
                mNotice('当前学期不存在','error');
                errors ++;
            }
            

        },function(result){
            failCallback(result);
        });
        // 获取当前用户
        userPromise = userDao.get({},function(result){
            var user = result.data || {};

            $scope.user = IGrow.user = user;
            

        },function(result){
            failCallback(result);
        });

        $q.all( [semesterPromise,userPromise] ).then(function(){
            var studentDao,teacherDao;
            
            if(errors>0){
                failCallback();
                return;
            }
            // 若是学生
            if( isStudent(IGrow.user) ) {
                $('body').attr('role','student');
                studentDao = resource('/school/student');
                studentDao.get( { _relatedfields : 'class.name,class.id,grade.id,grade.name' } ).then(function(result){
                    var student = result.data || {};

                    IGrow.student = student;
                    initRouteConifg();

                }, function(result){
                    failCallback(result);
                });

            } else {
                $('body').attr('role','teacher');
                teacherDao = resource('/school/teacher');
                gradeDao = resource('/school/grade');
                schoolClassDao = resource('/school/class');
                var gradeList,classList;
                teacherDao.get( {} ).then(function(result){
                    var teacher = result.data || {};

                    IGrow.teacher = teacher;

                    var promiseGrade = gradeDao.list({},function(result){
                        gradeList = result.data || [];

                    },function(result){
                        failCallback(result);
                    });

                    var promiseClass = schoolClassDao.list({},function(result){
                        classList = result.data || [];
                    },function(result){
                        failCallback(result);
                    });

                    $q.all([promiseGrade,promiseClass]).then(function(){

                        angular.forEach(classList, function(item,_){
                            var gradeid = item.gradeid,grade = Utils.getItem(gradeList,{id:gradeid});

                            if(grade){
                                item._name = grade.name + item.name;
                            }
                        });
                        IGrow.teacher.classes = classList.sort(function(x,y){
                            return (x.gradeid-y.gradeid)>0?1:-1;
                        });
                        // init route
                        initRouteConifg();

                    }, function(){

                    });
                    

                }, function(result){
                    failCallback(result);
                });
            }
                
                

        }, function(){
            
        });
        
        function isStudent(user){
            return user.typeid==4?true:false;
        }
        function initRouteConifg(){
            // 绑定图片预览
            Utils.bindPreviewPhoto();
            // 假如没有路由 则显现完整菜单
            if(!location.hash){
                $scope.flag = true;
                $('.intro').show();
            }
            
            $('.hello-everyone').remove();
            // 配置路由
            routeConfig(IGrow.modules);
            $route.reload();

        }
            
       
        
    }]);