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(); } }]);
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(); } }]);