unserver-unify
Version:
128 lines (122 loc) • 3.81 kB
JavaScript
;
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);
}
}
});