Advertisement
Guest User

Untitled

a guest
Aug 27th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2.  
  3. angular.module('sirosApp')
  4.     .controller('MainCtrl', [ '$scope', 'hardwareRegisterService', 'loginService', 'formatValidatorService', '$q', 'typeAHeadService', function ($scope, hardwareRegisterService, loginService, formatValidatorService, $q, typeAHeadService) {
  5.         /**
  6.          * Main controller of page
  7.          */
  8.         $scope.privilegedLogins = ['admin'];
  9.         $scope.dataList = {};
  10.         $scope.newItem = {
  11.             'item-user': '',
  12.             'item-item':'',
  13.             'item-type':'',
  14.             'item-location':'',
  15.             'item-serial':'',
  16.             'item-date': '',
  17.             'item-price': ''
  18.         };
  19.         //will be run after login - for add items into the list of hardware
  20.         //promise is for now only for testing purposes
  21.         $scope.afterLoginAction = function(){
  22.             var d = $q.defer();
  23.             hardwareRegisterService.getList().then(
  24.                 function success(result){
  25.                     $scope.dataList = result;
  26.                     $scope.typeaheadStructure = typeAHeadService.extractTypeAHeasStructures($scope.dataList);
  27.                     d.resolve(result);
  28.                 },
  29.                 function error(er){
  30.                     console.log('Error: '+ er);
  31.                     d.reject(er);
  32.                 });
  33.  
  34.             //check privileges to edit content
  35.             if(loginService.getUserName()){
  36.                 if(! _.contains($scope.privilegedLogins, loginService.getUserName())) {
  37.                     //user only - no edit privileges - only view
  38.                     angular.element(document.getElementById('controls-header')).remove();
  39.                 }
  40.             }
  41.             return d.promise;
  42.         };
  43.  
  44.         //will be run after logout - clears list of hardware in the table
  45.         $scope.afterLogoutAction = function(){
  46.             $scope.dataList = {};
  47.         };
  48.  
  49.         $scope.name = ''; // This will hold the selected item
  50.         $scope.onItemSelected = function() { // this gets executed when an item is selected
  51.             console.log('selected=' + $scope.name);
  52.         };
  53.  
  54.         $scope.closeDialog = function(){
  55.             //close any modal
  56.             angular.element(document).find('body').removeClass();
  57.             angular.element(document).find('body').addClass('ng-scope');
  58.         };
  59.  
  60.         var bodyElement = angular.element(document).find('body');
  61.         var editButtonText = 'EditHardware',
  62.             addButtonText = 'AddNewHardware';
  63.  
  64.         var openModalForItems = function (){
  65.             bodyElement.addClass('dialog-open');
  66.             bodyElement.addClass('dialog-open-edit');
  67.         };
  68.         var closeModalForItems = function(){
  69.             bodyElement.removeClass('dialog-open');
  70.             bodyElement.removeClass('dialog-open-edit');
  71.         };
  72.         var getItemSubmitButton = function(){
  73.             return angular.element(document.getElementById('submit-item'));
  74.         };
  75.         $scope.addNewHardware = function(){
  76.             var d = $q.defer();
  77.             //validation data part
  78.             var notBrokenLength = formatValidatorService.validateAllForLength($scope.newItem);
  79.             var validDate = formatValidatorService.validateDate($scope.newItem['item-date']);
  80.             var validPrice = formatValidatorService.validatePrice($scope.newItem['item-price']);
  81.  
  82.             var allValid = notBrokenLength && validDate && validPrice;
  83.             if(allValid) {
  84.                 hardwareRegisterService.saveItem($scope.newItem).then(function success(result){
  85.                     //set list of hardware to default setting (including default sort)
  86.                     $scope.afterLoginAction();
  87.  
  88.                     //close modal window
  89.                     $scope.closeDialog();
  90.                     d.resolve(result);
  91.                 });
  92.             }
  93.                 return d.promise;
  94.         };
  95.  
  96.         $scope.editHardwareClick = function(id){
  97.             openModalForItems();
  98.             //set edit text for button
  99.             getItemSubmitButton().val(editButtonText);
  100.             //fill up form inputs
  101.             hardwareRegisterService.getItem(id).then(
  102.                 function success(result){
  103.                     //update model (template)
  104.                     $scope.newItem = result;
  105.                 });
  106.         };
  107.  
  108.         $scope.addNewHardwareClick = function() {
  109.             //clear cached item
  110.             $scope.newItem = {};
  111.  
  112.             openModalForItems();
  113.             //set add text for button
  114.             getItemSubmitButton().val(addButtonText);
  115.         };
  116.     }]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement