unserver-unify
Version:
141 lines (137 loc) • 3.94 kB
JavaScript
angular.module('bamboo.project').controller('ProjectListCtrl', function($scope, ApiService, loginService) {
var _self = this;
console.log("---- 'MaterialListCtrl' -----");
this.defaultPhoto ="assets/images/project.png";
this.photoUrl = ApiService.SHOST + '/project/';
this.items = [];
this.itemNumber = 6;
this.page = 0;
this.currentPage=1;
this.user = loginService.user;
this.category;
this.selected = false;
this.projectcategory = ApiService.projectcategory;
this.projectkeys = ApiService.school.projectkeys;
$scope.setting = {
pageSize: _self.itemNumber,
currentPage: (_self.page + 1),
};
var currentcat=null;
function getitems(cat) {
var info = {
start: (_self.currentPage - 1)*_self.itemNumber,
limit: _self.itemNumber,
action: "getvalidprojects",
};
currentcat=cat;
if (cat) {
if (!info.search) {
info.search = {};
}
info.search.category = cat;
}
console.log(info);
ApiService.post("/project", info).then(function(result) {
console.log(result);
if (result.data.success) {
console.log(result.data.data.items);
_self.items = result.data.data.items
console.log(cat)
_self.catCount=result.data.data.counter;
if(!_self.totalCount||_self.totalCount<result.data.data.counter){
_self.totalCount = result.data.data.counter;
}
}
});
};
function getArray(obj, array, level, parent) {
if ((typeof obj) === "object") {
for (var key in obj) {
var fullkey;
if (parent == '') {
fullkey = key;
} else {
fullkey = parent + "," + key;
}
var _i = {
key: fullkey,
value: level,
title: key,
items: [],
};
array.push(_i);
var info = obj[key];
if (typeof info === "object") {
getArray(info, _i.items, level + 1, fullkey);
}
}
}
}
this.pageChanged=function(page){
_self.currentPage=page;
getitems(currentcat);
}
function generateCategoryList() {
var catList = [];
console.log(_self.projectcategory);
getArray(_self.projectcategory, catList, 0, '');
console.log(catList);
if (!_self.projectkeys) {
$scope.catitems = catList;
} else {
var keyindex = {};
var results = [];
angular.forEach(catList, function(val, index) {
var key = val.title;
keyindex[key] = val;
})
angular.forEach(_self.projectkeys, function(key, index) {
if (keyindex[key]) {
results.push(keyindex[key]);
}
})
angular.forEach(keyindex, function(val, key) {
var found = false;
for (var i = 0; i < results.length; i++) {
var record = results[i].title;
if (record == key) {
found = true;
break;
}
}
if (!found) {
results.push(val);
}
})
$scope.catitems = results;
console.log($scope.catitems);
}
getlateststatus();
getitems();
}
generateCategoryList();
function getlateststatus() {
var info={
action:"getcategorynumber",
}
console.log(info);
ApiService.post("/project", info).then(function(result) {
console.log(result);
if (result.data.success) {
console.log(result.data);
var _totalCoursesCountUnderCat = 0;
for (var i = 0; i < $scope.catitems.length; i++) {
var catitem = $scope.catitems[i];
var key = catitem.key;
if (result.data.data[key]) {
catitem.counter = result.data.data[key];
}
}
}
});
}
this.list = function(key) {
console.log(key);
getitems(key);
}
});