Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- angular.module('sirosApp')
- .controller('MainCtrl', [ '$scope', 'hardwareRegisterService', 'loginService', 'formatValidatorService', '$q', 'typeAHeadService', function ($scope, hardwareRegisterService, loginService, formatValidatorService, $q, typeAHeadService) {
- /**
- * Main controller of page
- */
- $scope.privilegedLogins = ['admin'];
- $scope.dataList = {};
- $scope.newItem = {
- 'item-user': '',
- 'item-item':'',
- 'item-type':'',
- 'item-location':'',
- 'item-serial':'',
- 'item-date': '',
- 'item-price': ''
- };
- //will be run after login - for add items into the list of hardware
- //promise is for now only for testing purposes
- $scope.afterLoginAction = function(){
- var d = $q.defer();
- hardwareRegisterService.getList().then(
- function success(result){
- $scope.dataList = result;
- $scope.typeaheadStructure = typeAHeadService.extractTypeAHeasStructures($scope.dataList);
- d.resolve(result);
- },
- function error(er){
- console.log('Error: '+ er);
- d.reject(er);
- });
- //check privileges to edit content
- if(loginService.getUserName()){
- if(! _.contains($scope.privilegedLogins, loginService.getUserName())) {
- //user only - no edit privileges - only view
- angular.element(document.getElementById('controls-header')).remove();
- }
- }
- return d.promise;
- };
- //will be run after logout - clears list of hardware in the table
- $scope.afterLogoutAction = function(){
- $scope.dataList = {};
- };
- $scope.name = ''; // This will hold the selected item
- $scope.onItemSelected = function() { // this gets executed when an item is selected
- console.log('selected=' + $scope.name);
- };
- $scope.closeDialog = function(){
- //close any modal
- angular.element(document).find('body').removeClass();
- angular.element(document).find('body').addClass('ng-scope');
- };
- var bodyElement = angular.element(document).find('body');
- var editButtonText = 'EditHardware',
- addButtonText = 'AddNewHardware';
- var openModalForItems = function (){
- bodyElement.addClass('dialog-open');
- bodyElement.addClass('dialog-open-edit');
- };
- var closeModalForItems = function(){
- bodyElement.removeClass('dialog-open');
- bodyElement.removeClass('dialog-open-edit');
- };
- var getItemSubmitButton = function(){
- return angular.element(document.getElementById('submit-item'));
- };
- $scope.addNewHardware = function(){
- var d = $q.defer();
- //validation data part
- var notBrokenLength = formatValidatorService.validateAllForLength($scope.newItem);
- var validDate = formatValidatorService.validateDate($scope.newItem['item-date']);
- var validPrice = formatValidatorService.validatePrice($scope.newItem['item-price']);
- var allValid = notBrokenLength && validDate && validPrice;
- if(allValid) {
- hardwareRegisterService.saveItem($scope.newItem).then(function success(result){
- //set list of hardware to default setting (including default sort)
- $scope.afterLoginAction();
- //close modal window
- $scope.closeDialog();
- d.resolve(result);
- });
- }
- return d.promise;
- };
- $scope.editHardwareClick = function(id){
- openModalForItems();
- //set edit text for button
- getItemSubmitButton().val(editButtonText);
- //fill up form inputs
- hardwareRegisterService.getItem(id).then(
- function success(result){
- //update model (template)
- $scope.newItem = result;
- });
- };
- $scope.addNewHardwareClick = function() {
- //clear cached item
- $scope.newItem = {};
- openModalForItems();
- //set add text for button
- getItemSubmitButton().val(addButtonText);
- };
- }]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement