116 lines
4.0 KiB
JavaScript
116 lines
4.0 KiB
JavaScript
/*
|
|
* Copyright 2015-2018 Jeeva Kandasamy (jkandasa@gmail.com)
|
|
* and other contributors as indicated by the @author tags.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
myControllerModule.controller('DashboardListController', function(alertService,
|
|
$scope, $filter, $location, $uibModal, $stateParams, $state, displayRestError, DashboardFactory, mchelper, CommonServices) {
|
|
$scope.dId;
|
|
$scope.dashboards ={};
|
|
$scope.showLoading = false;
|
|
$scope.showLoadingMain = false;
|
|
$scope.mchelper = mchelper;
|
|
|
|
$scope.updateDashboard = function(){
|
|
DashboardFactory.getAll({'lessInfo':true}, function(responseDashboards){
|
|
$scope.dashboards = $filter('orderBy')(responseDashboards, 'id', false);
|
|
if(mchelper.user.selectedDashboard === undefined){
|
|
mchelper.user.selectedDashboard = $scope.dashboards[0].id;
|
|
//Update mchelper
|
|
CommonServices.saveMchelper(mchelper);
|
|
}
|
|
$scope.dId = mchelper.user.selectedDashboard;
|
|
$scope.showLoadingMain = false;
|
|
DashboardFactory.get({'dId':$scope.dId}, function(responseDashboard){
|
|
$scope.model = responseDashboard;
|
|
$scope.model.titleTemplateUrl = "partials/dashboard/dashboard-title.html";
|
|
$scope.selectedName = $scope.model.name;
|
|
});
|
|
});
|
|
};
|
|
|
|
//Initial load
|
|
$scope.updateDashboard();
|
|
|
|
$scope.changeDashboard = function (item){
|
|
$scope.showLoading = true;
|
|
$scope.dId = item.id;
|
|
mchelper.user.selectedDashboard = item.id;
|
|
//Update mchelper
|
|
CommonServices.saveMchelper(mchelper);
|
|
DashboardFactory.get({'dId':$scope.dId}, function(response){
|
|
$scope.model = response;
|
|
$scope.model.titleTemplateUrl = "partials/dashboard/dashboard-title.html";
|
|
$scope.selectedName = $scope.model.name;
|
|
//console.log(angular.toJson($scope.model));
|
|
$scope.showLoading = false;
|
|
});
|
|
};
|
|
|
|
$scope.createNewDashboad = function(){
|
|
if($scope.dashboards.length < mchelper.cfg.dashboardLimit){
|
|
DashboardFactory.get({'getNew':true,'title':$filter('translate')('NEW_DASHBOARD')},function(response){
|
|
//Update items
|
|
$scope.updateDashboard();
|
|
});
|
|
}
|
|
};
|
|
|
|
//Delete item(s)
|
|
$scope.deleteDashboad = function (size) {
|
|
if($scope.dashboards.length == 1){
|
|
return;
|
|
}
|
|
var modalInstance = $uibModal.open({
|
|
templateUrl: 'partials/common-html/delete-modal.html',
|
|
controller: 'ControllerDeleteModal',
|
|
size: size,
|
|
resolve: {}
|
|
});
|
|
|
|
modalInstance.result.then(function () {
|
|
DashboardFactory.delete({'dId':$scope.dId}, function(response) {
|
|
alertService.success('Deleted an item successfully!');
|
|
$scope.dId = undefined;
|
|
mchelper.selectedDashboard = undefined;
|
|
//Update items
|
|
$scope.updateDashboard();
|
|
},function(error){
|
|
displayRestError.display(error);
|
|
});
|
|
}),
|
|
function () {
|
|
}
|
|
};
|
|
|
|
var eventFired = function (event, name, model) {
|
|
//$scope.eventsFired.push(event);
|
|
//console.log(angular.toJson(model));
|
|
DashboardFactory.update(model);
|
|
$scope.dashboards.forEach
|
|
angular.forEach($scope.dashboards, function(dashboard) {
|
|
if(dashboard.id === model.id){
|
|
dashboard.title = model.title;
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.$on('adfDashboardChanged', eventFired);
|
|
//$scope.$on('adfWidgetAdded', eventFired);
|
|
//$scope.$on('adfWidgetMoved', eventFired);
|
|
//$scope.$on('adfWidgetAddedToColumn', eventFired);
|
|
//$scope.$on('adfWidgetRemovedFromColumn', eventFired);
|
|
//$scope.$on('adfWidgetMovedInColumn', eventFired);
|
|
});
|