Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <reference path='../../_all.d.ts' />
- module yql.directives {
- 'use strict';
- export class AccesListDirective {
- static $inject = ['Restangular', '$modal', '$q', AccesListDirective.directiveFactory];
- static APIManager: string = '2014-06-01/Manager/';
- static directiveFactory(Restangular: restangular.IService, $modal: any, $q: any): ng.IDirective {
- return {
- templateUrl: 'app/directives/acces/AccesListDirective.html',
- replace: true,
- scope: {
- firm: '=firm'
- },
- link: function(scope: any) {
- scope.currentPage = 1;
- scope.itemsPerPage = 10;
- scope.sortType = 'Login';
- scope.sortReverse = 'asc';
- // sélectionne un accès de la liste
- scope.select = function() {
- scope.selected = this.$index;
- };
- // ajoute un accès
- scope.add = () => {
- // TODO
- };
- // supprime l'accès
- scope.delete = () => {
- var promises = [];
- angular.forEach(scope.selectedItems, (element: any) => {
- if (element.GroupName) {
- promises.push(element.remove({firm: element.Firm, group: element.GroupName, folder: element.FolderName, application: element.ApplicationName}));
- }
- else {
- promises.push(element.remove({firm: element.Firm, domain: element.Domain, login: element.Login, folder: element.FolderName, application: element.ApplicationName}));
- }
- });
- $q.all(promises).then((items: any) => {
- scope.getData();
- });
- };
- // tri le tableau
- scope.sort = (sortType: string) => {
- scope.sortType = sortType;
- scope.sortReverse = (scope.sortReverse === 'desc') ? 'asc' : 'desc';
- scope.getData();
- };
- // récupérations des accès et ajout dans le scope
- scope.getData = () => {
- var getFilter: string;
- getFilter = 'Firm eq \'' + scope.firm + '\'';
- if (scope.search) {
- getFilter += ' and (contains(ApplicationName, \'' + scope.search + '\')';
- getFilter += ' or contains(Domain, \'' + scope.search + '\')';
- getFilter += ' or contains(Firm, \'' + scope.search + '\')';
- getFilter += ' or contains(FolderName, \'' + scope.search + '\')';
- getFilter += ' or contains(GroupName, \'' + scope.search + '\')';
- getFilter += ' or contains(Login, \'' + scope.search + '\'))';
- }
- Restangular.all(AccesListDirective.APIManager + 'Associations').getList({$filter: getFilter}).then((items: any) => {
- scope.totalItems = items.length;
- Restangular.all(AccesListDirective.APIManager + 'Associations').getList({
- $filter: getFilter,
- $skip: (scope.currentPage - 1) * scope.itemsPerPage,
- $top: scope.itemsPerPage,
- $orderby: scope.sortType + ' ' + scope.sortReverse
- }).then((items: any) => {
- scope.selectedItems = [];
- scope.selected = 0;
- if (items[0]) {
- items[0].selected = 1;
- }
- scope.items = items;
- });
- });
- };
- scope.getData();
- }
- };
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement