Adding angular support
Change-Id: I88c1211d661b2c77bcf6b99ceb1fbf2c2eae139c
Signed-off-by: Iftekharul Islam <iislam@us.ibm.com>
diff --git a/src/js/controllers.js b/src/js/controllers.js
new file mode 100644
index 0000000..a197ab2
--- /dev/null
+++ b/src/js/controllers.js
@@ -0,0 +1,155 @@
+ angular
+ .module('app.controllers', [])
+ .controller('loginController', ['$scope', '$window', 'APIUtils', 'dataService', function($scope, $window, APIUtils, dataService){
+ $scope.login = function(username, password){
+ $scope.error = false;
+ $scope.dataService = dataService;
+ if(!username || username == "" ||
+ !password || password == ""){
+ return false;
+ }else{
+ //@TODO: service should handle
+ if(username == APIUtils.LOGIN_CREDENTIALS.username &&
+ password == APIUtils.LOGIN_CREDENTIALS.password){
+ $window.location.hash = '#/dashboard';
+ }else{
+ $scope.error = true;
+ //@TODO: show error message
+ }
+ }
+ }
+ }])
+ .controller('dashboardController', ['$scope', 'dataService', function($scope, dataService){
+ $scope.dataService = dataService;
+ }])
+ .controller('systemOverviewController', ['$scope', 'dataService', function($scope, dataService){
+ $scope.dataService = dataService;
+ }])
+ .controller('powerOperationsController', ['$scope', 'APIUtils', 'dataService', function($scope, APIUtils, dataService){
+ $scope.dataService = dataService;
+ $scope.confirm = false;
+ $scope.power_confirm = false;
+ $scope.warmboot_confirm = false;
+ $scope.coldboot_confirm = false;
+ $scope.orderly_confirm = false;
+ $scope.immediately_confirm = false;
+
+ //@TODO: call api and get proper state
+ $scope.toggleState = function(){
+ dataService.server_state = (dataService.server_state == 'On') ? 'Off': 'On';
+ }
+
+ $scope.togglePower = function(){
+ var method = (dataService.server_state == 'On') ? 'chassisPowerOff' : 'chassisPowerOn';
+ //@TODO: show progress or set class orange
+ APIUtils[method](function(response){
+ //update state based on response
+ //error case?
+ if(response == null){
+ console.log("Failed request.");
+ }else{
+ dataService.server_state = response;
+ }
+ });
+ }
+ $scope.powerOnConfirm = function(){
+ if($scope.confirm) {
+ return;
+ }
+ $scope.confirm = true;
+ $scope.power_confirm = true;
+ };
+ $scope.warmReboot = function(){
+ //@TODO:show progress
+ APIUtils.hostPowerOff(function(response){
+ if(response){
+ APIUtils.hostPowerOn(function(response){
+ if(response){
+
+ }else{
+ //@TODO:show error message
+ }
+ //@TODO:hide progress, set proper server state
+ });
+ }else{
+ //@TODO:hide progress & show error message
+ }
+ });
+ };
+ $scope.warmRebootConfirm = function(){
+ if($scope.confirm) {
+ return;
+ }
+ $scope.confirm = true;
+ $scope.warmboot_confirm = true;
+ };
+
+ $scope.coldReboot = function(){
+ //@TODO:show progress
+ APIUtils.chassisPowerOff(function(response){
+ if(response){
+ APIUtils.chassisPowerOn(function(response){
+ if(response){
+
+ }else{
+ //@TODO:show error message
+ }
+ //@TODO:hide progress, set proper server state
+ });
+ }else{
+ //@TODO:hide progress & show error message
+ }
+ });
+ };
+ $scope.coldRebootConfirm = function(){
+ if($scope.confirm) {
+ return;
+ }
+ $scope.confirm = true;
+ $scope.coldboot_confirm = true;
+ };
+
+ $scope.orderlyShutdown = function(){
+ //@TODO:show progress
+ APIUtils.hostPowerOff(function(response){
+ if(response){
+ APIUtils.chassisPowerOff(function(response){
+ if(response){
+
+ }else{
+ //@TODO:show error message
+ }
+ //@TODO:hide progress, set proper server state
+ });
+ }else{
+ //@TODO:hide progress & show error message
+ }
+ });
+ };
+ $scope.orderlyShutdownConfirm = function(){
+ if($scope.confirm) {
+ return;
+ }
+ $scope.confirm = true;
+ $scope.orderly_confirm = true;
+ };
+
+ $scope.immediateShutdown = function(){
+ //@TODO:show progress
+ APIUtils.chassisPowerOff(function(response){
+ if(response){
+ //@TODO: set proper server state
+ }else{
+ //@TODO:show error message
+ }
+ //@TODO:hide progress
+ });
+ };
+ $scope.immediateShutdownConfirm = function(){
+ if($scope.confirm) {
+ return;
+ }
+ $scope.confirm = true;
+ $scope.immediately_confirm = true;
+ };
+ }]);
\ No newline at end of file