/** * Created by Benny on 12.10.2014. */ "use strict"; var TB = TB || {}; TB.Control = TB.Control || {}; TB.Control.News = { index : function() { TB.GUI.showLoader(); var page = new TB.Page('news'); TB.Service.request('News', 'get', { filter : TB.Client.getConfig( 'news_filter' ) }, function (data) { TB.GUI.hideLoader(); data.news_filter = TB.Client.getConfig( 'news_filter' ); // Only scroll down if there are at least 3 news if ( data && data.news.length > 2 ) { TB.GUI.show(page, data, true ); } else { TB.GUI.show(page, data ); } TB.GUI.updateNewsBadge(0); page.$container.find( '#btn_news_create').click( function() { TB.Controller.do( 'News', 'create' ); }); page.$container.find( '#btn-coach-help').click( function() { TB.GUI.showModal( "News", TB.Config.Content.helpHtml.news ); }); page.$container.find( 'button[data-dropdown-action="toggle-chat-filter"]' ).click( function() { if ( "all" == $(this).attr( 'data-current-val' ) ) { TB.Client.setConfig( 'news_filter', 'custom' ); } else { TB.Client.setConfig( 'news_filter', 'all' ); } TB.Controller.reload(); }); page.$container.find( 'button[data-action="delete"]').click( function() { $(this).blur(); var newsId = $(this).attr( 'data-news_id' ); TB.Ext.Alert.modal({ title: 'Diesen Eintrag wirklich löschen?' }, function() { TB.Service.request( 'News', 'delete', { news_id : newsId }, function( data ) { if ( data.res && data.res == 'ok' ) { TB.Ext.Notification.show( 'News Eintrag erfolgreich entfernt.', TB.Ext.Notification.TYPE_SUCCESS ); TB.Controller.reload(); } else { TB.Ext.Notification.show( 'Ein Fehler ist aufgetreten', TB.Ext.Notification.TYPE_DANGER ); } }); }); }); page.$container.find( '#btn_news_chat').click( function() { var chatContent = $( '#chat_content').val(); if ( !chatContent || 0 == chatContent.length ) { return false; } TB.Service.request( 'News', 'createChat', { content : chatContent }, function( data ) { if ( data && data.res && data.res == 'ok' ) { TB.Ext.Notification.show( 'Chat Eintrag erstellt.', TB.Ext.Notification.TYPE_SUCCESS ); TB.Controller.reload(); } else { TB.Ext.Notification.show( 'Ein Fehler ist aufgetreten', TB.Ext.Notification.TYPE_DANGER ); } }, $(this) ); return false; }); }); }, create : function() { var page = new TB.Page( 'news_create' ); TB.GUI.show( page ); page.$container.find( '#btn_news_create_cancel').click( function() { TB.Controller.do('News', 'index'); }); page.$container.find( '#btn_news_create_submit').click( function() { if (!TB.GUI.performFormValidation($('#form_news_create'))) { return false; } var props = $('#form_news_create').serializeObject(); TB.Service.request( 'News', 'create', props, function( data ) { if ( data.res = 'ok' ) { TB.Ext.Notification.show( 'News Eintrag erfolgreich erstellt.', TB.Ext.Notification.TYPE_SUCCESS ); } else { TB.Ext.Notification.show( 'Ein Fehler ist aufgetreten', TB.Ext.Notification.TYPE_DANGER ); } TB.Controller.do( 'News', 'index' ); }, $(this) ); return false; }); } };