UNPKG

unserver-unify

Version:

161 lines (155 loc) 4.66 kB
angular.module('bamboo.material').controller('MaterialListCtrl', function($scope, ApiService, $stateParams, loginService) { var _self = this; console.log("---- 'MaterialListCtrl' -----"); this.defaultPhoto = "assets/images/material.png"; this.photoUrl = ApiService.SHOST + '/material/'; this.items = []; this.itemNumber = 6; this.page = 0; this.currentPage = 1; this.user = loginService.user; this.category; this.selected = false; this.materialgroup = ApiService.materialgroup; this.materialkeys = ApiService.school.materialkeys; _self.shareFlag = $stateParams.share; $scope.setting = { pageSize: _self.itemNumber, currentPage: (_self.page + 1), }; var mygroup; if (loginService.user) { loginService.getMyProfile().then(function(result) { mygroup = result.mgroup; }); } else { mygroup = "FFFF"; } var currentcat = null; function getitems(cat) { var info = { start: (_self.currentPage - 1) * _self.itemNumber, limit: _self.itemNumber, action: "getenablematerials", }; currentcat = cat; if (cat) { if (!info.search) { info.search = {}; } info.search.category = cat; } console.log(info); ApiService.post("/material", 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(_self.mygroup); console.log(cat) angular.forEach(_self.items, function(item, index) { if (item.public) { item.url = ".detail"; } else if ((!_self.user.grole && !_self.user.is_admin) || (_self.user.grole && _self.user.grole == "user")) { if (item.category.indexOf(_self.mygroup) > -1) { item.url = ".detail"; } else { item.url = ".info"; } } else { item.url = ".detail"; } }); _self.catCount = result.data.data.counter; $scope.articleCounter = 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.materialgroup); getArray(_self.materialgroup, catList, 0, ''); console.log(catList); if (!_self.materialkeys) { $scope.catitems = catList; } else { var keyindex = {}; var results = []; angular.forEach(catList, function(val, index) { var key = val.title; keyindex[key] = val; }) angular.forEach(_self.materialkeys, 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() { ApiService.get('/materialcatnumber').then(function(result) { if (result.data.success) { 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); } });