Advertisement
villers

Untitled

Jun 9th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// <reference path='../../_all.d.ts' />
  2.  
  3. module yql.directives {
  4.   'use strict';
  5.  
  6.   export class AccesListDirective {
  7.     static $inject = ['Restangular', '$modal', '$q', AccesListDirective.directiveFactory];
  8.     static APIManager: string = '2014-06-01/Manager/';
  9.  
  10.     static directiveFactory(Restangular: restangular.IService, $modal: any, $q: any): ng.IDirective {
  11.       return {
  12.         templateUrl: 'app/directives/acces/AccesListDirective.html',
  13.         replace: true,
  14.         scope: {
  15.           firm: '=firm'
  16.         },
  17.         link: function(scope: any) {
  18.           scope.currentPage = 1;
  19.           scope.itemsPerPage = 10;
  20.           scope.sortType     = 'Login';
  21.           scope.sortReverse  = 'asc';
  22.  
  23.           // sélectionne un accès de la liste
  24.           scope.select = function() {
  25.             scope.selected = this.$index;
  26.           };
  27.  
  28.           // ajoute un accès
  29.           scope.add = () => {
  30.             // TODO
  31.           };
  32.  
  33.           // supprime l'accès
  34.           scope.delete = () => {
  35.             var promises = [];
  36.             angular.forEach(scope.selectedItems, (element: any) => {
  37.               if (element.GroupName) {
  38.                 promises.push(element.remove({firm: element.Firm, group: element.GroupName, folder: element.FolderName, application: element.ApplicationName}));
  39.               }
  40.               else {
  41.                 promises.push(element.remove({firm: element.Firm, domain: element.Domain, login: element.Login, folder: element.FolderName, application: element.ApplicationName}));
  42.               }
  43.             });
  44.             $q.all(promises).then((items: any) => {
  45.               scope.getData();
  46.             });
  47.           };
  48.  
  49.           // tri le tableau
  50.           scope.sort = (sortType: string) => {
  51.             scope.sortType = sortType;
  52.             scope.sortReverse = (scope.sortReverse === 'desc') ? 'asc' : 'desc';
  53.             scope.getData();
  54.           };
  55.  
  56.           // récupérations des accès et ajout dans le scope
  57.           scope.getData = () => {
  58.             var getFilter: string;
  59.             getFilter = 'Firm eq \'' + scope.firm + '\'';
  60.             if (scope.search) {
  61.               getFilter += ' and (contains(ApplicationName, \'' + scope.search + '\')';
  62.               getFilter += ' or contains(Domain, \'' + scope.search + '\')';
  63.               getFilter += ' or contains(Firm, \'' + scope.search + '\')';
  64.               getFilter += ' or contains(FolderName, \'' + scope.search + '\')';
  65.               getFilter += ' or contains(GroupName, \'' + scope.search + '\')';
  66.               getFilter += ' or contains(Login, \'' + scope.search + '\'))';
  67.             }
  68.  
  69.             Restangular.all(AccesListDirective.APIManager + 'Associations').getList({$filter: getFilter}).then((items: any) => {
  70.               scope.totalItems = items.length;
  71.               Restangular.all(AccesListDirective.APIManager + 'Associations').getList({
  72.                 $filter: getFilter,
  73.                 $skip: (scope.currentPage - 1) * scope.itemsPerPage,
  74.                 $top: scope.itemsPerPage,
  75.                 $orderby: scope.sortType + ' ' + scope.sortReverse
  76.               }).then((items: any) => {
  77.                 scope.selectedItems = [];
  78.                 scope.selected = 0;
  79.                 if (items[0]) {
  80.                   items[0].selected = 1;
  81.                 }
  82.                 scope.items = items;
  83.               });
  84.             });
  85.           };
  86.  
  87.           scope.getData();
  88.         }
  89.       };
  90.     }
  91.   }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement