mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
$(function () {
 | 
						|
    if (!feature_flags.alert_words) {
 | 
						|
        $('#word-alert-area').remove();
 | 
						|
    }
 | 
						|
    var word_list = $('#word-alerts');
 | 
						|
    _.each(alert_words.words, function (word) {
 | 
						|
        var li = templates.render('alert_word_settings_item', {'word': word});
 | 
						|
        word_list.append(li);
 | 
						|
    });
 | 
						|
    var new_word = templates.render('alert_word_settings_item', {'word': '', editing: true});
 | 
						|
    word_list.append(new_word);
 | 
						|
 | 
						|
    function update_word_alerts() {
 | 
						|
        var words = _.map($('.alert-word-item'), function (e) {
 | 
						|
            return $(e).data('word');
 | 
						|
        });
 | 
						|
        words = _.filter(words, function (word) {
 | 
						|
            return word !== "";
 | 
						|
        });
 | 
						|
 | 
						|
        $.ajax({
 | 
						|
            type: 'POST',
 | 
						|
            url: '/json/set_alert_words',
 | 
						|
            data: {alert_words: JSON.stringify(words)},
 | 
						|
            dataType: 'json'});
 | 
						|
    }
 | 
						|
 | 
						|
    function add_alert_word(word) {
 | 
						|
          if (word === '') {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
 | 
						|
        var final_li = templates.render('alert_word_settings_item', {'word': word, editing: false});
 | 
						|
 | 
						|
        var li = $(event.target).parent();
 | 
						|
        li.replaceWith(final_li);
 | 
						|
 | 
						|
        var new_word = templates.render('alert_word_settings_item', {'word': '', editing: true});
 | 
						|
        word_list.append(new_word);
 | 
						|
 | 
						|
        if (word_list.find('input').length > 0) {
 | 
						|
            word_list.find('input').focus();
 | 
						|
        }
 | 
						|
 | 
						|
        update_word_alerts();
 | 
						|
    }
 | 
						|
 | 
						|
    $('#word-alerts').on('click', '.add-alert-word', function (event) {
 | 
						|
        var word = $(event.target).siblings('input').val();
 | 
						|
        add_alert_word(word);
 | 
						|
    });
 | 
						|
 | 
						|
    $('#word-alerts').on('click', '.remove-alert-word', function (event) {
 | 
						|
        var li = $(event.target).parent();
 | 
						|
        li.remove();
 | 
						|
 | 
						|
        update_word_alerts();
 | 
						|
    });
 | 
						|
 | 
						|
    $('#word-alerts').on('keypress', '.edit-alert-word', function (event) {
 | 
						|
        var key = event.which;
 | 
						|
        // Disallow spaces (key code 32)
 | 
						|
        // Handle enter as "add"
 | 
						|
        if (key === 32) {
 | 
						|
            event.preventDefault();
 | 
						|
        } else if (key === 13) {
 | 
						|
            event.preventDefault();
 | 
						|
 | 
						|
            var word = $(event.target).val();
 | 
						|
            add_alert_word(word);
 | 
						|
        }
 | 
						|
    });
 | 
						|
});
 | 
						|
 |