UNPKG

unserver-unify

Version:

128 lines (122 loc) 3.81 kB
'use strict'; angular.module('bamboo.bbs').controller('BbsTopicsCtrl', function($scope, ApiService,$state, $timeout, $stateParams, TopicApi, smoothScroll) { var _self = this; this.publicUrl = $scope.publicUrl = ApiService.SHOST + "/public/images/"; this.schoolIconUrl = $scope.schoolUrl = ApiService.SHOST + "/public/" + ApiService.RES + "/school/" + ApiService.gid + "/"; $scope.slides = ApiService.school.slides; this.TitleInfo; var boxcolors = ['service-block-u', 'service-block-blue', 'service-block-red', 'service-block-sea', 'service-block-grey', 'service-block-yellow', 'service-block-orange', 'service-block-purple', 'service-block-brown', 'service-block-dark-blue', 'service-block-dark']; var _cindex = 0; function getBLKcolor() { var id = _cindex % boxcolors.length; _cindex++; console.log(id); return boxcolors[id]; } var _category = ApiService.forumcategory; console.log("forumcategory: ", _category); $scope.bbsStatus = []; var _keylist = []; var _keyindex = 0; function getInfo(_key) { if (!_category || !_category[_key]) { console.log("----------- return here --------") return; } var subcategory = _category[_key]; var title = subcategory.Info; console.log('------'+title); var bbskeys = []; bbskeys.push(_key); for (var key in subcategory) { if (key != "Info") { bbskeys.push(key); } else { _self.TitleInfo = subcategory[key]; } } console.log(bbskeys); // if (bbskeys.length < 1) { // console.log(_key); // bbskeys.push(_key); // //return; // } var info = { action: "getMainBbsStatus", keys: bbskeys, } console.log(info); TopicApi.BBSApi(info, function(result) { console.log(result.data); // var tmp=angular.copy(result.data); // console.log(tmp); var bbss = []; var _keyHasTopic = false; angular.forEach(result.data, function(value, key) { if(value.key==_key&&value.status){ _keyHasTopic = true; } value.color = getBLKcolor(); bbss.push(value); var pos=bbskeys.indexOf(value.key); console.log(pos); if(pos>-1){ bbskeys.splice(pos,1); } }); if(!_keyHasTopic&&bbskeys.length!=1){ var pos=bbskeys.indexOf(_key); if(pos>-1){ bbskeys.splice(pos,1); } } if(bbskeys.length){ angular.forEach(bbskeys,function(key){ var value={ color:getBLKcolor(), key:key, } bbss.push(value); }) } var info = { key: _key, title: title, bbss: bbss, } // console.log(info); console.log(info); $scope.bbsStatus.push(info); // $scope.bbsstatus=result.data.data; // console.log($scope.bbsStatus); }); } this.key = $stateParams.key; if (_self.key && _self.key.length > 2) { getInfo(_self.key); } else { if (!_category) { return; } for (var key in _category) { _keylist.push(key); // getInfo(key) ; } console.log(_keylist); getKeyStatus(); } function getKeyStatus() { console.log("--- get key status ---"+_keyindex); if(_category[_keylist[_keyindex]]&&angular.equals({},_category[_keylist[_keyindex]])) { console.log('-----------'+_keylist[_keyindex]); getInfo(_keylist[_keyindex]); _keyindex++; } else if (_keyindex < _keylist.length) { getInfo(_keylist[_keyindex]); _keyindex++; } if (_keyindex < _keylist.length) { $timeout(getKeyStatus, 1000); } } });