//= require twitter/typeahead.min //= require bootstrap-tokenfield //= require cocoon //= require ckeditor/init function create_alert(level, message) { $('#alert_area').append(''); } function set_and_change(selector, value) { $(selector).prop('checked', value).trigger('change'); } function flicker(selector, count) { $(selector).addClass('flicker') .delay(100) .queue(function() { $(this).removeClass('flicker'); $(this).dequeue(); }) .delay(100) .queue(function() { if(count > 1) { flicker(selector, count - 1); } else { flick_out(selector); } $(this).dequeue(); }); } function flick_out(selector) { $(selector).addClass('flicker') .delay(100) .queue(function() { $(this).addClass('flicker-out'); $(this).dequeue(); }).delay(1000) .queue(function() { $(this).removeClass('flicker').removeClass('flicker-out'); $(this).dequeue(); }) } function replace_via_ajax(selector, path) { $.getJSON( path, function( data ) { $(selector).replaceWith(data.html); flicker(selector, 3); }); } function process_results(data) { if(typeof data.results === 'undefined' || data.results.length == 0) { create_alert('warning', data.message); } else { create_alert('info', data.message); for(var key in data.results) { var item = data.results[key]; replace_via_ajax('#' + item.css_id, item.path); } } } function add_tag_magic(selector) { $(selector).tokenfield({ typeahead: [ { hint: true, highlight: true }, { source: suggestions.ttAdapter() } ], showAutocompleteOnFocus: true }); } $(document).ready(function(){ $('.message_train_conversation input[type="checkbox"]').change(function(event) { if (event.target.checked) { //Checkbox has been checked $(this).parents('.message_train_conversation').addClass('selected'); } else { //Checkbox has been unchecked $(this).parents('.message_train_conversation').removeClass('selected'); } }); $('#check_all').change(function(event) { if (event.target.checked) { set_and_change( '.message_train_conversation input[type="checkbox"]', true); } else { set_and_change( '.message_train_conversation input[type="checkbox"]', false); } }); $('#box-actions .check').click(function(event) { event.preventDefault(); selector = $(this).data('selector'); set_and_change( '.message_train_conversation input[type="checkbox"]', false); if(selector == '.message_train_conversation') { $('#check_all').prop('checked', true); } else { $('#check_all').prop('checked', false); } if(selector != '') { set_and_change( selector + ' input[type="checkbox"]', true); } }); $('#box-actions .mark').click(function(event) { event.preventDefault(); $('#spinner').removeClass('hide'); mark_to_set = $(this).data('mark'); if(mark_to_set == 'ignore' || mark_to_set == 'unignore') { $('input[name="_method"]').val('delete'); } else { $('input[name="_method"]').val('put'); } $('input[name="mark_to_set"]').val(mark_to_set); $('#box').submit(); }); $('#box').on('ajax:success', function (e, data, status, xhr) { $('#spinner').addClass('hide'); process_results(data); }).on('ajax:error', function (e, data, status, xhr) { create_alert('danger', data.responseJSON.message); }); $('#box #message_train_messages .read').each(function(e){ $(this).find('.collapse').collapse('hide'); }); $('.recipient-input').each(function() { add_tag_magic('#' + $(this).attr('id')); }); $('#attachment_preview').on('show.bs.modal', function (event) { var button = $(event.relatedTarget); // Button that triggered the modal var src = button.data('src'); // Extract info from data-* attributes var original = button.data('original'); var text = button.data('text'); var modal = $(this); modal.find('#image_placeholder').html('') }); });