const SettingsAccess = { route : 'settings/access/:groupId', isDefault : true, templateUrl : 'js/app/views/settings/settings-access.html', navigatioData : null, redirectUrl : 'auth/login', canAccess : function() { return this.app.user.isLoggedIn(); }, create : function( p ) { this.container = this.app.UI.getContentContainer(); const $container = $( this.container ), app = this.app, admins = [], self = this, groupId = p.get( 'groupId' ); this.render(); app.rpc.call( 'Team', 'getDetails', { teamId : groupId, includeMembers: true }, function( res ) { if ( res && res.hasOwnProperty( 'data' ) && res.data.hasOwnProperty( 'members' ) ) { let m; for ( let mi = 0; mi < res.data.members.length; mi++ ) { m = self.createInstance( 'UserProfile', res.data.members[ mi ] ); if ( m.isAdminOfGroup( groupId ) ) { m.setContextGroupId( groupId ); admins.push( m ); } } let adt = self.createComponent( 'access-data-table', $container.find( '[data-id="container-access-data-table"]' ).first().get( 0 ), { members : admins } ); $container.find( '[data-id="ibox-access-data-table"]' ).toggleClass( 'sk-loading' ); adt.addEventListener( 'grantManagerAccess', function( e ) { let memberId = e.data.memberId; let $modalRoot = $container.find( '[data-id="modal-confirm-grant-manager-access"]' ).first(); $modalRoot.find( '[data-id="section-confirm-manager-access"]' ).first().show(); $modalRoot.find( '[data-id="section-loader"]' ).first().hide(); $modalRoot.on( 'shown.bs.modal', function() { $modalRoot.find( '[data-id="btnSubmitGrant"]' ).first().off( "click" ); $modalRoot.find( '[data-id="btnSubmitGrant"]' ).first().click( function() { $(this).off( "click" ); $modalRoot.find( '[data-id="section-confirm-manager-access"]' ).first().hide(); $modalRoot.find( '[data-id="section-loader"]' ).first().show(); app.rpc.call( 'Profile', 'grantManagerAccess', { profileId : memberId, teamId : groupId }, function( resp ) { if ( resp && resp.hasOwnProperty( 'code' ) && resp.code == 200 ) { app.UI.toastSuccess( 'Aktion erfolgreich.' ); app.reload(); } else { app.UI.toastError(); } $modalRoot.modal( 'hide' ); } ); }); }); $modalRoot.on( 'hidden.bs.modal', function() { $modalRoot.modal( 'dispose' ); }); $modalRoot.modal( 'show' ); }); adt.addEventListener( 'removeManagerAccess', function( e ) { let memberId = e.data.memberId; let $modalRoot = $container.find( '[data-id="modal-confirm-remove-manager-access"]' ).first(); $modalRoot.find( '[data-id="section-confirm-manager-access"]' ).first().show(); $modalRoot.find( '[data-id="section-loader"]' ).first().hide(); $modalRoot.on( 'shown.bs.modal', function() { $modalRoot.find( '[data-id="btnSubmitRemove"]' ).first().off( "click" ); $modalRoot.find( '[data-id="btnSubmitRemove"]' ).first().click( function() { $(this).off( "click" ); $modalRoot.find( '[data-id="section-confirm-manager-access"]' ).first().hide(); $modalRoot.find( '[data-id="section-loader"]' ).first().show(); app.rpc.call( 'Profile', 'removeManagerAccess', { profileId : memberId, teamId : groupId }, function( resp ) { if ( resp && resp.hasOwnProperty( 'code' ) && resp.code == 200 ) { if ( app.user.userProfile.get( 'id' ) == memberId ) { app.UI.toastWarning( 'Sie haben sich selbt den Zugriff entzogen und werden ausgeloggt.' ); setTimeout( function() { app.user.logout(); }, 1000 ); } else { app.UI.toastSuccess( 'Aktion erfolgreich.' ); app.reload(); } } else { app.UI.toastError(); } $modalRoot.modal( 'hide' ); } ); }); }); $modalRoot.on( 'hidden.bs.modal', function() { $modalRoot.modal( 'dispose' ); }); $modalRoot.modal( 'show' ); }); } } ); }, destroy : function() { } }; export { SettingsAccess };