mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	zjquery: Rename add_child() to set_find_results().
Hopefully this will make it more explicit that zjquery does
not truly simulate DOM, but it instead allows you to dynamically
set what you want the results of $('foo').find(some_selector)
to be.
			
			
This commit is contained in:
		@@ -290,8 +290,8 @@ presence.presence_info[norbert.user_id] = { status: activity.ACTIVE };
 | 
			
		||||
    var count = $('alice-count');
 | 
			
		||||
    var pm_key = alice.user_id.toString();
 | 
			
		||||
    var li = $("li.user_sidebar_entry[data-user-id='" + pm_key + "']");
 | 
			
		||||
    count.add_child('.value', value);
 | 
			
		||||
    li.add_child('.count', count);
 | 
			
		||||
    count.set_find_results('.value', value);
 | 
			
		||||
    li.set_find_results('.count', count);
 | 
			
		||||
    count.set_parent(li);
 | 
			
		||||
 | 
			
		||||
    var counts = new Dict();
 | 
			
		||||
@@ -315,8 +315,8 @@ presence.presence_info[norbert.user_id] = { status: activity.ACTIVE };
 | 
			
		||||
    var pm_key = alice.user_id.toString() + "," + fred.user_id.toString();
 | 
			
		||||
    var li_selector = "li.group-pms-sidebar-entry[data-user-ids='" + pm_key + "']";
 | 
			
		||||
    var li = $(li_selector);
 | 
			
		||||
    count.add_child('.value', value);
 | 
			
		||||
    li.add_child('.count', count);
 | 
			
		||||
    count.set_find_results('.value', value);
 | 
			
		||||
    li.set_find_results('.count', count);
 | 
			
		||||
    count.set_parent(li);
 | 
			
		||||
 | 
			
		||||
    var counts = new Dict();
 | 
			
		||||
@@ -416,7 +416,7 @@ presence.presence_info[jill.user_id] = { status: activity.ACTIVE };
 | 
			
		||||
    var alice_li = $('alice-li');
 | 
			
		||||
 | 
			
		||||
    // These selectors are here to avoid some short-circuit logic.
 | 
			
		||||
    $('#user_presences').add_child('[data-user-id="1"]', alice_li);
 | 
			
		||||
    $('#user_presences').set_find_results('[data-user-id="1"]', alice_li);
 | 
			
		||||
 | 
			
		||||
    var appended_html;
 | 
			
		||||
    $('#user_presences').append = function (html) {
 | 
			
		||||
@@ -437,7 +437,7 @@ presence.presence_info[jill.user_id] = { status: activity.ACTIVE };
 | 
			
		||||
    var fred_li = $('fred-li');
 | 
			
		||||
 | 
			
		||||
    // These selectors are here to avoid some short-circuit logic.
 | 
			
		||||
    $('#user_presences').add_child('[data-user-id="2"]', fred_li);
 | 
			
		||||
    $('#user_presences').set_find_results('[data-user-id="2"]', fred_li);
 | 
			
		||||
 | 
			
		||||
    var appended_html;
 | 
			
		||||
    $('#user_presences').append = function (html) {
 | 
			
		||||
@@ -466,7 +466,7 @@ presence.presence_info[jill.user_id] = { status: activity.ACTIVE };
 | 
			
		||||
    var fred_li = $('fred-li');
 | 
			
		||||
 | 
			
		||||
    // These selectors are here to avoid some short-circuit logic.
 | 
			
		||||
    $('#user_presences').add_child('[data-user-id="2"]', fred_li);
 | 
			
		||||
    $('#user_presences').set_find_results('[data-user-id="2"]', fred_li);
 | 
			
		||||
 | 
			
		||||
    $('fake-dom-for-jill').attr = function (attr_name) {
 | 
			
		||||
        assert.equal(attr_name, 'data-user-id');
 | 
			
		||||
@@ -576,8 +576,8 @@ $('.user-list-filter').is = function (sel) {
 | 
			
		||||
    var pm_key = alice.user_id.toString() + "," + fred.user_id.toString();
 | 
			
		||||
    var li_selector = "li.group-pms-sidebar-entry[data-user-ids='" + pm_key + "']";
 | 
			
		||||
    var li = $(li_selector);
 | 
			
		||||
    count.add_child('.value', value);
 | 
			
		||||
    li.add_child('.count', count);
 | 
			
		||||
    count.set_find_results('.value', value);
 | 
			
		||||
    li.set_find_results('.count', count);
 | 
			
		||||
    count.set_parent(li);
 | 
			
		||||
 | 
			
		||||
    var real_get_huddles = activity.get_huddles;
 | 
			
		||||
@@ -609,7 +609,7 @@ $('.user-list-filter').is = function (sel) {
 | 
			
		||||
    };
 | 
			
		||||
    var alice_li = $('alice-li');
 | 
			
		||||
 | 
			
		||||
    $('#user_presences').add_child('[data-user-id="1"]', alice_li);
 | 
			
		||||
    $('#user_presences').set_find_results('[data-user-id="1"]', alice_li);
 | 
			
		||||
 | 
			
		||||
    $('#user_presences').append = function () {};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -146,8 +146,8 @@ global.people.initialize_current_user(me.user_id);
 | 
			
		||||
    var alice_li = $('alice-li-stub');
 | 
			
		||||
    var bob_li = $('bob-li-stub');
 | 
			
		||||
 | 
			
		||||
    private_li.add_child("li[data-user-ids-string='101']", alice_li);
 | 
			
		||||
    private_li.add_child("li[data-user-ids-string='102']", bob_li);
 | 
			
		||||
    private_li.set_find_results("li[data-user-ids-string='101']", alice_li);
 | 
			
		||||
    private_li.set_find_results("li[data-user-ids-string='102']", bob_li);
 | 
			
		||||
 | 
			
		||||
    var dom;
 | 
			
		||||
    private_li.append = function (html) {
 | 
			
		||||
@@ -237,15 +237,15 @@ global.people.initialize_current_user(me.user_id);
 | 
			
		||||
    var total_value = $('total-value-stub');
 | 
			
		||||
    var total_count = $('total-count-stub');
 | 
			
		||||
    var private_li = $("#global_filters > li[data-name='private']");
 | 
			
		||||
    private_li.add_child('.count', total_count);
 | 
			
		||||
    total_count.add_child('.value', total_value);
 | 
			
		||||
    private_li.set_find_results('.count', total_count);
 | 
			
		||||
    total_count.set_find_results('.value', total_value);
 | 
			
		||||
 | 
			
		||||
    var child_value = $('child-value-stub');
 | 
			
		||||
    var child_count = $('child-count-stub');
 | 
			
		||||
    var child_li = $('child-li-stub');
 | 
			
		||||
    private_li.add_child("li[data-user-ids-string='101,102']", child_li);
 | 
			
		||||
    child_li.add_child('.private_message_count', child_count);
 | 
			
		||||
    child_count.add_child('.value', child_value);
 | 
			
		||||
    private_li.set_find_results("li[data-user-ids-string='101,102']", child_li);
 | 
			
		||||
    child_li.set_find_results('.private_message_count', child_count);
 | 
			
		||||
    child_count.set_find_results('.value', child_value);
 | 
			
		||||
 | 
			
		||||
    var pm_count = new Dict();
 | 
			
		||||
    var user_ids_string = '101,102';
 | 
			
		||||
 
 | 
			
		||||
@@ -146,7 +146,7 @@ set_global('message_store', {
 | 
			
		||||
    var count_element = $('count-stub');
 | 
			
		||||
    var reaction_element = $('reaction-stub');
 | 
			
		||||
 | 
			
		||||
    reaction_element.add_child('.message_reaction_count', count_element);
 | 
			
		||||
    reaction_element.set_find_results('.message_reaction_count', count_element);
 | 
			
		||||
 | 
			
		||||
    reactions.set_reaction_count(reaction_element, 5);
 | 
			
		||||
 | 
			
		||||
@@ -158,8 +158,8 @@ set_global('message_store', {
 | 
			
		||||
    var message_row = $('some-message-row');
 | 
			
		||||
    var message_reactions = $('our-reactions-section');
 | 
			
		||||
 | 
			
		||||
    message_table.add_child("[zid='555']", message_row);
 | 
			
		||||
    message_row.add_child('.message_reactions', message_reactions);
 | 
			
		||||
    message_table.set_find_results("[zid='555']", message_row);
 | 
			
		||||
    message_row.set_find_results('.message_reactions', message_reactions);
 | 
			
		||||
 | 
			
		||||
    var section = reactions.get_reaction_section(555);
 | 
			
		||||
 | 
			
		||||
@@ -222,7 +222,7 @@ set_global('message_store', {
 | 
			
		||||
 | 
			
		||||
    var count_element = $('count-element');
 | 
			
		||||
    var reaction_element = $('reaction-element');
 | 
			
		||||
    reaction_element.add_child('.message_reaction_count', count_element);
 | 
			
		||||
    reaction_element.set_find_results('.message_reaction_count', count_element);
 | 
			
		||||
 | 
			
		||||
    var title_set;
 | 
			
		||||
    reaction_element.prop = function (prop_name, value) {
 | 
			
		||||
 
 | 
			
		||||
@@ -69,14 +69,14 @@ set_global('ui_report', {
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
function simulate_auth_methods() {
 | 
			
		||||
    $('#admin_auth_methods_table').add_child(
 | 
			
		||||
    $('#admin_auth_methods_table').set_find_results(
 | 
			
		||||
        'tr.method_row',
 | 
			
		||||
        $('admin-tr-stub')
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    var controls = $('auth-methods-controls-stub');
 | 
			
		||||
 | 
			
		||||
    $(".organization-box [data-name='auth-methods']").add_child(
 | 
			
		||||
    $(".organization-box [data-name='auth-methods']").set_find_results(
 | 
			
		||||
        'input, button, select, checked',
 | 
			
		||||
        controls
 | 
			
		||||
    );
 | 
			
		||||
@@ -87,7 +87,7 @@ function simulate_auth_methods() {
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    var non_editables = $('auth-methods-not-edit-stub');
 | 
			
		||||
    $('.organization-box').add_child(
 | 
			
		||||
    $('.organization-box').set_find_results(
 | 
			
		||||
        '.settings-section:not(.can-edit)',
 | 
			
		||||
        non_editables
 | 
			
		||||
    );
 | 
			
		||||
@@ -96,7 +96,7 @@ function simulate_auth_methods() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function simulate_realm_domains_table() {
 | 
			
		||||
    $('#realm_domains_table tbody').add_child(
 | 
			
		||||
    $('#realm_domains_table tbody').set_find_results(
 | 
			
		||||
        'tr',
 | 
			
		||||
        $('realm-tr-stub')
 | 
			
		||||
    );
 | 
			
		||||
@@ -115,17 +115,17 @@ function simulate_realm_domains_table() {
 | 
			
		||||
function test_realms_domain_modal(add_realm_domain) {
 | 
			
		||||
    var info = $('domains-info-stub');
 | 
			
		||||
 | 
			
		||||
    $('#realm_domains_modal').add_child(
 | 
			
		||||
    $('#realm_domains_modal').set_find_results(
 | 
			
		||||
        '.realm_domains_info',
 | 
			
		||||
        info
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    $('#add-realm-domain-widget').add_child(
 | 
			
		||||
    $('#add-realm-domain-widget').set_find_results(
 | 
			
		||||
        '.new-realm-domain',
 | 
			
		||||
        $('new-realm-domain-stub')
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    $('#add-realm-domain-widget').add_child(
 | 
			
		||||
    $('#add-realm-domain-widget').set_find_results(
 | 
			
		||||
        '.new-realm-domain-allow-subdomains',
 | 
			
		||||
        $('new-realm-domain-allow-subdomains-stub')
 | 
			
		||||
    );
 | 
			
		||||
@@ -393,7 +393,7 @@ function test_change_allow_subdomains(change_allow_subdomains) {
 | 
			
		||||
        error_callback = req.error;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    $('#realm_domains_modal').add_child(
 | 
			
		||||
    $('#realm_domains_modal').set_find_results(
 | 
			
		||||
        '.realm_domains_info',
 | 
			
		||||
        info
 | 
			
		||||
    );
 | 
			
		||||
@@ -402,7 +402,7 @@ function test_change_allow_subdomains(change_allow_subdomains) {
 | 
			
		||||
    $('elem-stub').parents = function () {
 | 
			
		||||
        return $('parents-stub');
 | 
			
		||||
    };
 | 
			
		||||
    $('parents-stub').add_child('.domain', $('domain-stub'));
 | 
			
		||||
    $('parents-stub').set_find_results('.domain', $('domain-stub'));
 | 
			
		||||
    $('elem-stub').prop('checked', allow);
 | 
			
		||||
 | 
			
		||||
    change_allow_subdomains.apply('elem-stub', [ev]);
 | 
			
		||||
 
 | 
			
		||||
@@ -50,8 +50,8 @@ set_global('topic_list', {});
 | 
			
		||||
    (function create_devel_sidebar_row() {
 | 
			
		||||
        var devel_value = $('devel-value');
 | 
			
		||||
        var devel_count = $('devel-count');
 | 
			
		||||
        $('devel-stub-html').add_child('.count', devel_count);
 | 
			
		||||
        $('devel-count').add_child('.value', devel_value);
 | 
			
		||||
        $('devel-stub-html').set_find_results('.count', devel_count);
 | 
			
		||||
        $('devel-count').set_find_results('.value', devel_value);
 | 
			
		||||
        devel_count.set_parent($('devel-stub-html'));
 | 
			
		||||
 | 
			
		||||
        global.templates.render = function (template_name, data) {
 | 
			
		||||
@@ -67,8 +67,8 @@ set_global('topic_list', {});
 | 
			
		||||
    (function create_social_sidebar_row() {
 | 
			
		||||
        var social_value = $('social-value');
 | 
			
		||||
        var social_count = $('social-count');
 | 
			
		||||
        $('social-stub-html').add_child('.count', social_count);
 | 
			
		||||
        $('social-count').add_child('.value', social_value);
 | 
			
		||||
        $('social-stub-html').set_find_results('.count', social_count);
 | 
			
		||||
        $('social-count').set_find_results('.value', social_value);
 | 
			
		||||
        social_count.set_parent($('social-stub-html'));
 | 
			
		||||
 | 
			
		||||
        global.templates.render = function (template_name, data) {
 | 
			
		||||
@@ -111,7 +111,7 @@ set_global('topic_list', {});
 | 
			
		||||
    var stream_id = social.stream_id;
 | 
			
		||||
 | 
			
		||||
    var privacy_elem = $('privacy-stub');
 | 
			
		||||
    social_li.add_child('.stream-privacy', privacy_elem);
 | 
			
		||||
    social_li.set_find_results('.stream-privacy', privacy_elem);
 | 
			
		||||
 | 
			
		||||
    social.invite_only = true;
 | 
			
		||||
    social.color = '#222222';
 | 
			
		||||
@@ -362,8 +362,8 @@ function initialize_stream_data() {
 | 
			
		||||
        var elem = $(elem_selector);
 | 
			
		||||
        var count = $(count_selector);
 | 
			
		||||
        var value = $(value_selector);
 | 
			
		||||
        elem.add_child('.count', count);
 | 
			
		||||
        count.add_child('.value', value);
 | 
			
		||||
        elem.set_find_results('.count', count);
 | 
			
		||||
        count.set_find_results('.value', value);
 | 
			
		||||
        count.set_parent(elem);
 | 
			
		||||
 | 
			
		||||
        return elem;
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,7 @@ set_global('$', global.make_zjquery());
 | 
			
		||||
    assert.equal(widget.val(), '42');
 | 
			
		||||
}());
 | 
			
		||||
 | 
			
		||||
(function test_parent_child_stuff() {
 | 
			
		||||
(function test_finding_child_objects() {
 | 
			
		||||
    // Let's say you have a function like the following:
 | 
			
		||||
    function update_message_emoji(emoji_src) {
 | 
			
		||||
        $('#my-message').find('.emoji').attr('src', emoji_src);
 | 
			
		||||
@@ -72,9 +72,9 @@ set_global('$', global.make_zjquery());
 | 
			
		||||
 | 
			
		||||
    // But you can set up your tests to simulate DOM relationships.
 | 
			
		||||
    //
 | 
			
		||||
    // We will use add_child(), which is a special zjquery helper.
 | 
			
		||||
    // We will use set_find_results(), which is a special zjquery helper.
 | 
			
		||||
    var emoji = $('emoji-stub');
 | 
			
		||||
    $('#my-message').add_child('.emoji', emoji);
 | 
			
		||||
    $('#my-message').set_find_results('.emoji', emoji);
 | 
			
		||||
 | 
			
		||||
    // And then calling the function produces the desired effect:
 | 
			
		||||
    update_message_emoji('foo.png');
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ exports.make_zjquery = function () {
 | 
			
		||||
        var value;
 | 
			
		||||
        var shown = false;
 | 
			
		||||
        var focused = false;
 | 
			
		||||
        var children = new Dict();
 | 
			
		||||
        var find_results = new Dict();
 | 
			
		||||
        var my_parent;
 | 
			
		||||
        var properties = new Dict();
 | 
			
		||||
        var attrs = new Dict();
 | 
			
		||||
@@ -31,8 +31,10 @@ exports.make_zjquery = function () {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        var self = {
 | 
			
		||||
            add_child: function (child_selector, child_elem) {
 | 
			
		||||
                children.set(child_selector, child_elem);
 | 
			
		||||
            add_child: function () {
 | 
			
		||||
                // TODO: Remove this once some in-flight PRs
 | 
			
		||||
                //       get merged.
 | 
			
		||||
                assert(false, 'Use set_find_results instead.');
 | 
			
		||||
            },
 | 
			
		||||
            addClass: function (class_name) {
 | 
			
		||||
                classes.set(class_name, true);
 | 
			
		||||
@@ -69,7 +71,7 @@ exports.make_zjquery = function () {
 | 
			
		||||
            },
 | 
			
		||||
            fadeTo: noop,
 | 
			
		||||
            find: function (child_selector) {
 | 
			
		||||
                var child = children.get(child_selector);
 | 
			
		||||
                var child = find_results.get(child_selector);
 | 
			
		||||
                if (child) {
 | 
			
		||||
                    return child;
 | 
			
		||||
                }
 | 
			
		||||
@@ -187,6 +189,9 @@ exports.make_zjquery = function () {
 | 
			
		||||
                generic_event('select', arg);
 | 
			
		||||
                return self.wrapper;
 | 
			
		||||
            },
 | 
			
		||||
            set_find_results: function (find_selector, jquery_object) {
 | 
			
		||||
                find_results.set(find_selector, jquery_object);
 | 
			
		||||
            },
 | 
			
		||||
            show: function () {
 | 
			
		||||
                shown = true;
 | 
			
		||||
                return self.wrapper;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user