1if (ar_components === undefined){ 2 var ar_components = {}; 3} 4 5ar_components.members = function(config){ 6 this.user_id = config.user_id; 7 8 this.ajax_url = config.ajax_url; 9 10 this.members_container = config.members_container; 11 this.members_load_more = config.members_load_more; 12 this.members_filters = config.members_filters; 13 this.members_view = config.members_view; 14 this.members_offset = config.members_offset; 15 this.pending_members_containers = config.pending_members_containers; 16 this.total_members_count = config.total_members_count; 17 18 this.init(); 19}; 20 21ar_components.members.prototype.init = function () { 22 this.populateMembers("init"); 23 24 this.members_load_more.on("click", function() { 25 this.populateMembers("loadmore"); 26 }.bind(this)); 27 28 /* 29 this.members_filters.on("change", function(){ 30 this.populateMembers("filter"); 31 }.bind(this)); 32 */ 33 34 this.members_view.on("click", function(){ 35 var new_view = $(this).attr("data-show"); 36 37 $(".view-trigger").removeClass("active"); 38 $(this).addClass("active"); 39 40 $(".view").hide(); 41 $("." + new_view).show(); 42 }); 43}; 44 45/********************************** 46 Start function populate members 47 **************************************/ 48ar_components.members.prototype.populateMembers = function(method = "init") { 49 50 $.ajax({ 51 type : "POST", 52 url : this.ajax_url, 53 data : { 54 room_id: this.room_id, 55 offset: method === "loadmore" ? parseInt(this.members_load_more.attr("data-offset")) : this.members_offset, 56 filter: this.members_filters.val() 57 }, 58 cache: false, 59 beforeSend: function(){ 60 if(method === "loadmore") { 61 this.members_load_more.find(".load-more-loading").show(); 62 } 63 64 if(method === "filter") { 65 this.members_load_more.hide(); 66 this.members_container.find(".members-loader").show(); 67 this.members_container.find(".profile-box:not(#member-template):not(#member-template-list)").remove(); 68 } 69 }.bind(this), 70 success: function(data) { 71 if(data.status === "ok") { 72 this.members_container.find(".members-loader").hide(); 73 this.members_load_more.find(".load-more-loading").hide(); 74 if (this.total_members_count) { 75 this.total_members_count.html(data.total_members); 76 } 77 78 if(Object.size(data.members) > 0) { 79 $.each(data.members, function(index, item){ 80 this.displayMember(item); 81 }.bind(this)); 82 } else { 83 84 if(method == 'search'){ 85 $('.show-no-search-banner').removeClass('hide'); 86 } else { 87 $('.show-no-connections-banner').removeClass('hide'); 88 } 89 } 90 91 this.members_load_more.find(".load-more-loading").hide(); 92 this.members_load_more.attr("data-offset", data.next_offset); 93 94 if(data.next_offset >= data.total_members) { 95 this.members_load_more.hide(); 96 } else { 97 this.members_load_more.show(); 98 } 99 100 // todo: rewrite this hardcoded ids 101 if(data.total_pending_memebers > 0) { 102 this.pending_members_containers.find("#total-pending-memebers").html(data.total_pending_memebers); 103 this.pending_members_containers.find("#total-pending-shares").html(data.total_pending_shares); 104 this.pending_members_containers.show(); 105 } else { 106 this.pending_members_containers.hide(); 107 } 108 } else { 109 alert("Something went wrong."); 110 } 111 }.bind(this) 112 }); 113}; 114 115ar_components.members.prototype.displayMember = function(member, order = "append"){ 116 var template = this.members_container.find("#member-template").clone(); 117 118 template.removeAttr("id"); 119 120 if(!member.isAngelClub){ 121 template.find(".room-members-profil-image").addClass('gray-border'); 122 } 123 124 if(member.isAngelClub){ 125 template.find('.ac-logo-image').removeClass('hide'); 126 } 127 128 129 template.find(".room-members-profil-image").attr("src", member.member_image); 130 template.find(".room-members-name-value").html(member.name); 131 template.find(".room-members-name-value").attr('title', member.name);
132 template.find(".room-members-honorific-value").html(member.honorific_title); 133 template.find(".room-members-country").html(member.address); 134 template.find(".room-members-position").html(member.position); 135 template.find(".room-members-company").html(member.company); 136 if(parseInt(member.investments_number) > 0) { 137 template.find(".room-members-investments").find("span.room-members-investments-count").html(member.investments_number); 138 139 if(parseInt(member.investments_number) === 1) { 140 template.find(".room-members-investments").find(".room-members-investments-text-singular").show(); 141 template.find(".room-members-investments").find(".room-members-investments-text-plurar").hide(); 142 } else { 143 template.find(".room-members-investments").find(".room-members-investments-text-singular").hide(); 144 template.find(".room-members-investments").find(".room-members-investments-text-plurar").show(); 145 } 146 } else { 147 template.find(".room-members-investments").hide(); 148 } 149 150 template.find('.profile-actions').html(member.connect_button); 151 152 153 154 if(member.mutual_connections_number > 0){ 155 template.find(".mutual-connections-number").html(member.mutual_connections); 156 template.find('.room-members-mutual').attr('data-id', member.uid); 157 template.find('.room-members-mutual').attr('data-href', member.mutual_connections_href); 158 template.find('.room-members-mutual').show(); 159 } 160 161 162 if(member.mutual_investments_number > 0){ 163 template.find(".mutual-investment-number").html(member.mutual_investments); 164 template.find(".room-members-mutual-investments").show(); 165 166 167 if(member.mutual_connections_number === 0){ 168 template.find(".room-members-mutual-investments").addClass('push-mutual-bottom'); 169 } 170 171 } 172 173 174 template.attr("data-url", member.profile_url); 175 template.find(".room-members-url").attr("href", member.profile_url); 176 177 178 var template_list = this.members_container.find("#member-template-list").clone(); 179 180 template_list.removeAttr("id"); 181 template_list.find(".room-members-profil-image").attr("src", member.member_image); 182 183 184 if(!member.isAngelClub){ 185 template_list.find(".room-members-profil-image").addClass('gray-border'); 186 } 187 188 if(member.isAngelClub){ 189 template.find('.ac-logo-image').removeClass('hide'); 190 } 191 192 template_list.find(".room-members-name-value").html(member.name); 193 template_list.find(".room-members-name-value").attr('title',member.name);
194 template_list.find(".room-members-honorific-value").html(member.honorific_title); 195 template_list.find(".room-members-country").html(member.address); 196 template_list.find(".room-members-position").html(member.position); 197 template_list.find(".room-members-company").html(member.company); 198 template_list.find(".room-members-about").html(member.about); 199 template_list.find(".room-members-investments").html(member.ac_investments); 200 template_list.attr("data-url", member.profile_url); 201 202 template.show(); 203 template_list.show(); 204 205 if(order === "prepend") { 206 this.members_container.find(".grid-view").prepend(template); 207 this.members_container.find(".list-view").prepend(template_list); 208 } else { 209 this.members_container.find(".grid-view").append(template); 210 this.members_container.find(".list-view").append(template_list); 211 } 212}; 213 214 215/********************************** 216 End function load more members 217 **************************************/ 218 219Object.size = function(obj) { 220 var size = 0, key; 221 for (key in obj) { 222 if (obj.hasOwnProperty(key)) size++; 223 } 224 return size; 225}; 226 227 228 229$(document).on("click", ".room-members-mutual", function(e) { 230 231 var data_href = $(this).attr('data-href'); 232 233 $.ajax({ 234 type: "POST", 235 url: data_href, 236 data: {}, 237 beforeSent:function(){ 238 $('#DefaultModal .modal-content').html(''); 239 $('#DefaultModal').modal('hide'); 240 }, 241 success: function(data) { 242 243 $('#DefaultModal .modal-content').html(data); 244 $('#DefaultModal').modal('show'); 245 246 } 247 }); 248 249 return false; 250 251});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.