|
- /**
- * Created by Benny on 12.10.2014.
- */
-
- "use strict";
-
- var TB = TB || {};
- TB.Control = TB.Control || {};
-
- TB.Control.Player = {
-
- // List of players
- index : function( params ) {
- TB.GUI.showLoader();
- var page = new TB.Page( 'player'),
- profileId = ( params && params.profile_id ) ? params.profile_id : TB.Client.profile.id;
-
- TB.Service.request( 'Profile', 'get', { profile_id: profileId } , function( data ) {
- TB.GUI.hideLoader();
- TB.GUI.show( page, data );
- page.$container.find( '#btn_playerpic_edit').click( function() {
-
- TB.Premium.callPremium( 'Player', 'edit_pic', { profile_id: profileId } );
- //TB.Controller.do( 'Player', 'edit_pic', { profile_id: profileId } );
- return false;
- });
- page.$container.find( '#btn_player_edit,#btn_traineropt_player_edit').click( function() {
- TB.Controller.do( 'Player', 'edit', { profile_id: profileId }, $(this) );
- return false;
- });
- page.$container.find( '#btn_player_delete, #btn_traineropt_player_delete').click( function() {
- //TB.Ext.Alert.show( 'Die Funktion steht derzeit noch nicht zur verfügung.' );
- TB.Controller.do( 'Player', 'confirmdelete', { profile_id: profileId }, $(this) );
- return false;
- });
- page.$container.find( '#btn-coach-help').click( function() {
- TB.GUI.showModal(
- "Profile",
- TB.Config.Content.helpHtml.profil
- );
- });
- });
- },
-
- edit : function( params ) {
- TB.GUI.showLoader();
- var page = new TB.Page( 'player_edit'),
- profileId = params.profile_id;
-
- TB.Service.request( 'Profile', 'get', { profile_id: profileId } , function( data ) {
- TB.GUI.hideLoader();
- TB.GUI.show( page, data );
- page.$container.find( '#btn-group-status').find( 'label' ).click( function() {
- $(this).parent( "div").find( 'label.btn-primary').removeClass( 'btn-primary').addClass( 'btn-default');
- $(this).removeClass( 'btn-default').addClass( 'btn-primary');
- page.$container.find( '#btn-group-status').find( 'span.fa.fa-check').remove();
- $( this ).append( '<span class="fa fa-check"></span>' );
- });
- page.$container.find( '#btn-group-role').find( 'label' ).not( '.btn-disabled').click( function() {
- $(this).parent( "div").find( 'label.btn-primary').removeClass( 'btn-primary').addClass( 'btn-default');
- $(this).removeClass( 'btn-default').addClass( 'btn-primary');
- page.$container.find( '#btn-group-role').find( 'span.fa.fa-check').remove();
- $( this ).append( '<span class="fa fa-check"></span>' );
- });
-
- page.$container.find( '#btn_player_update').click( function() {
- if ( !TB.GUI.performFormValidation( $( '#form_player_edit' ) ) ) {
- return false;
- }
-
- var props = $('#form_player_edit').serializeObject();
- props.birthday = props.birthday.length ? TB.Utils.convertDatepickerDateStringToSQLDate( props.birthday ) : null;
- TB.Service.request(
- 'Profile',
- 'update',
- props,
- function( data ) {
- TB.Ext.Notification.show( 'Änderungen gespeichert. Es kann einige Minuten dauern, bis die Änderungen aktualisiert werden.', TB.Ext.Notification.TYPE_SUCCESS );
- if ( data.own_profile ) {
- TB.Client.updateSessionProfile( data.own_profile );
- }
- // Reload
- TB.Controller.do( 'Player', 'index', { profile_id: props.id } )
- },
- $( this )
- );
-
- return false;
-
- });
- page.$container.find( '#btn_player_update_cancel').click( function() {
- TB.Controller.do( 'Player', 'index', { profile_id: profileId } );
- });
- });
- },
-
- edit_pic : function( params ) {
-
- TB.GUI.showLoader();
- var page = new TB.Page( 'player_edit_pic' ),
- profileId = ( params && params.profile_id ) ? params.profile_id : TB.Client.profile.id,
- serviceAction = TB.Client.can( TB.ACL.RIGHTS.PROFILE_UPDATEPICBYTRAINER ) ? 'updatePicByTrainer' : 'updatePic',
- slimCropper;
-
- page.onLeave = function() {
- slimCropper && slimCropper.destroy()
- };
-
- TB.Service.request( 'Profile', 'get', { profile_id: profileId } , function( data ) {
- TB.GUI.hideLoader();
- TB.GUI.show(page, data);
-
- function initSlimCropper() {
- slimCropper = new Slim(
- document.getElementsByClassName( 'slim' )[0], {
- label : 'Bild wählen',
- ratio : '1:1',
- maxFileSize : 6,
- size : {
- width: 300,
- height : 300
- },
- edit : true,
- instantEdit : true,
- download : false,
- buttonCancelLabel : 'Abbrechen',
- buttonConfirmLabel: 'Ok',
- statusNoSupport : 'Dein Browser unterstützt diese Funktion nicht.',
- statusImageTooSmall : 'Das Bild ist zu klein.',
- statusContentLength : 'Das Bild ist zu groß.',
- statusFileSize : 'Das Bild ist zu groß. Es darf maximal 6MB groß sein.'
- }
- );
- }
-
- initSlimCropper();
-
- page.$container.find( '#btn_edit_profile_pic_new').click( function() {
-
- if ( TB.Env.isNativeMobile() && "ANDROID" == TB.Env.platform ) {
-
- var myCb = function( data ) {
- slimCropper && slimCropper.destroy();
- var $myImg = page.$container.find( '#edit-profil-pic-img' );
- $myImg.on( 'load', function() {
- slimCropper && slimCropper.destroy()
- initSlimCropper();
- });
- $myImg.attr( 'src', "data:image/jpeg;base64," + data.pic64 );
- initSlimCropper();
- slimCropper.edit();
- };
-
- TB.ICom.post( "getPictureData", null, myCb );
-
- } else {
-
- slimCropper.remove();
- page.$container.find( 'input[type="file"]' ).click();
- }
- return false;
- });
-
- page.$container.find( '#btn_edit_profile_pic_cancel').click( function() {
- TB.Controller.do( 'Player', 'index', { profile_id: profileId } );
- return false;
- });
-
- page.$container.find( '#btn_edit_profile_pic_save').click( function() {
- var imgData = slimCropper.dataBase64;
-
- TB.GUI.showLoader();
-
- // Update
- TB.Service.request(
- 'Profile',
- serviceAction,
- { slim : JSON.stringify( imgData ), profile_id : profileId },
- function(data) {
- TB.GUI.hideLoader();
- if ( TB.Client.profile.id == profileId ) {
- TB.Client.updateSessionProfile( data.profile );
- $( '#offcanvasmenu img[data-id="userpic"]').first().attr( 'src', TB.GUI.getProfilePicUrl() );
- }
- TB.Ext.Notification.show( 'Profilbild erfolgreich gespeichert.', TB.Ext.Notification.TYPE_SUCCESS );
- TB.Controller.do( 'Player', 'index', { profile_id: profileId } );
- TB.Utils.trackEvent( 'profile', 'pic_updated' );
- },
- $(this),
- function() {
- TB.GUI.hideLoader();
- TB.Ext.Notification.show( 'Profilbild konnte nicht gespeichert. Versuche es später erneut.', TB.Ext.Notification.TYPE_DANGER );
- TB.Controller.do( 'Player', 'index', { profile_id: profileId } );
- }
- );
-
- return false;
- });
-
- });
-
- },
-
- confirmdelete : function( params ) {
-
- TB.GUI.showLoader();
- var page = new TB.Page( 'player_confirmdelete'),
- profileId = params.profile_id;
-
- TB.Service.request( 'Profile', 'get', { profile_id: profileId, includePremiumLogs : true } , function( data ) {
- var currentTeam = null,
- premiumCanBeDeleted = true,
- isOwn = TB.GUI.isOwnProfile( data.profile );
-
- if ( data.premium_logs && data.premium_logs.length > 0 )
- {
- for ( var pli = 0; pli < data.premium_logs.length; pli++ )
- {
- if ( data.premium_logs[ pli ].package_id !== TB.Premium.PACKAGE_PREMIUM100_FREE &&
- data.profile.account_id === data.premium_logs[ pli ].account_id )
- {
- premiumCanBeDeleted = false;
- break;
- }
- }
- }
-
- $.each( TB.Client.teams, function( i, t ) {
- if ( TB.Client.profile.team_id == t.id ) {
- currentTeam = t;
- return false;
- }
- });
-
- TB.GUI.hideLoader();
- TB.GUI.show(page, {
- profile : TB.Client.profile,
- profileToDelete : data.profile,
- profileTeam : currentTeam,
- profles : TB.Client.profiles,
- account : TB.Client.account,
- teams : TB.Client.teams,
- premiumCanBeDeleted : premiumCanBeDeleted,
- premium_logs : data.premium_logs
- });
-
- page.$container.find( '#btn-cancel' ).click( function() {
- TB.Controller.do( 'Player', 'index', { profile_id: profileId } );
- return false;
- });
-
- page.$container.find( '#btn-confirm-deletion' ).click( function() {
-
- // Security check
- if ( !page.$container.find( '#checkbox-confirm-deletion').prop( 'checked' ) ) {
- TB.Ext.Notification.show(
- 'Bitte bestätige die Löschung im Bestätigungsfeld.',
- TB.Ext.Notification.TYPE_DANGER
- );
- } else {
-
- // Perform deletion
- TB.Service.request( 'Profile', 'delete', { profile_id: profileId } , function( data ) {
-
- if ( data && data.deletionsuccess ) {
- if ( isOwn ) {
- TB.Ext.Alert.modal( {
- 'showCancelButton' : false,
- 'title' : 'Löschung erfolgreich.',
- 'text' : 'Du wirst automatisch auf die Startseite weitergeleitet.',
- 'allowEscapeKey' : false
- },
- function() {
- TB.Client.logout();
- TB.Controller.do('Auth', 'login');
- TB.Utils.trackEvent( 'profile', 'deleted' );
- }
- );
-
- } else {
- TB.Ext.Notification.show(
- 'Löschung erfolgreich.',
- TB.Ext.Notification.TYPE_SUCCESS
- );
- TB.Controller.do( 'Team', 'index', {} );
- return false;
- }
- } else {
- TB.Ext.Notification.show(
- 'Es ist ein Fehler beim Löschvorgang aufgetreten. Bitte melde dich beim Support.',
- TB.Ext.Notification.TYPE_DANGER
- );
- }
-
- });
-
- }
-
- return false;
- });
-
-
- });
-
- }
- };
|