PageSourceSearch

https://semantics-org.github.io/js/pcsv.js

js semantics-org.github.io collected 2026-10-03 09:55:39 UTC 22,159 bytes, 494 lines download raw bytes

1
2
3function get_pc_csv(fcsv, page) {
4    $.ajax({
5        url : fcsv,
6        dataType: "text",
7        success : function (fdata) {
8            var json_data = $.csv.toObjects(fdata);
9            var html_superchairs = "";
10            json_data.forEach(function(entry) {
11                var fname = entry["first name"].trim();
12                var lname = entry["last name"].trim();
13                var role = entry["role"].trim().toLowerCase();
14                var affiliation = entry["affiliation"].trim();
15                var country = entry["country"].trim();
16                var email = entry["email"].trim();
17                var webpage = entry["Web page"].trim();
18                var image = "../img/person/"+entry["image"].trim();
19
20                //add email
21                var str_email = "";
22                if ((email != "") && (email.includes("@"))) {
23                  str_email = "<a href='mailto:"+email+"'>[[VAR]]</i></a>";
24                }
25
26                //add country
27                var str_country = "";
28                if (country != "") {
29                  str_country = ", "+country;
30                }
31
32                if (page == "pc"){
33                  if (role == "pc member") {
34                    //var html_entry = "<li>"+fname+" "+lname+" ("+affiliation+str_country+") "+str_email.replace("[[VAR]]","<i class='bi bi-envelope-at'>")+"</li>";
35                    // with no Email
36                    var html_entry = "<li>"+fname+" "+lname+" ("+affiliation+str_country+")</li>";
37                    $("#pc_members").append(html_entry);
38                  }
39                  if (role == "superchair") {
40                    var html_img = '<img typeof="foaf:Image" src="'+image+'" class="image-profile" alt="">'
41                    var str_html = '<div class="person col-sm-4">'+html_img+'<div>'+fname+' '+lname+'</div>'+'<div>'+affiliation+"</div>"+"<div class='person-role'>SUPERCHAIR</div>"+"</div>";
42                    //var str_html = '<div class="row psc-mem"><div class="col-lg-3 mx-auto image-profile"><img src="'+image+'" class=" image-profile"></div><div class="col-lg-9 mx-auto profile-details"><b>'+fname+' '+lname+'</b><br/>'+affiliation+str_country+'<br/></div></div>';
43                    html_superchairs += str_html;
44                  }
45
46                }
47
48            });
49            $("#psc_members").append("<div class='row section-content persons'>"+html_superchairs+"</div>");
50
51        }
52    });
53}
54
55function get_oc_csv(fcsv, page, container) {
56    $.ajax({
57        url : fcsv,
58        dataType: "text",
59        success : function (fdata) {
60          var json_data = $.csv.toObjects(fdata);
61          var count = 0;
62          var group_html = "";
63          var group_num = 0;
64          var group_class = "theme-row-alt";
65          var current_role_group = "";
66          json_data.forEach(function(entry) {
67              //header: Conference Committee,Name,Email,Status,Contacted,Easychair,country,affiliation
68              var conf_role = entry["Conference Committee"].trim();
69              var conf_role_group = entry["Conference Committee Group"].trim();
70              var name = entry["Name"].trim();
71              var email = entry["Email"].trim();
72              var affiliation = entry["affiliation"].trim();
73              var country = entry["country"].trim();
74              var image = "../img/person/"+entry["image"].trim();
75              let img_size = "60"
76              var html_img = '<img typeof="foaf:Image" src="'+image+'" class="image-profile" alt="">'
77              //add email
78              var str_email = "";
79              if ((email != "") && (email.includes("@"))) {
80                str_email = "<a href='mailto:"+email+"'>[[VAR]]</i></a>";
81                str_email = str_email.replace("[[VAR]]",email);
82                str_email = "";
83              }
84
85              // add role of each person if different from its group
86              var add_person_role = false;
87              if (conf_role_group.toLowerCase() != conf_role.toLowerCase()) {
88                add_person_role = true;
89              }
90
91              // group background style
92              if (group_num % 2 == 1) {
93                group_class = "";
94              }else {
95                group_class = "";
96              }
97
98              if ((current_role_group == "") || (conf_role_group != current_role_group)) {
99                if (current_role_group.trim() != ""){
100                  $("#"+container).append('<div class="row section-content persons '+group_class+'">'+group_html+'</div>');
101                  group_html = "";
102                  count = 0;
103                }
104                $("#"+container).append('<div class="row"><div class="col-lg-12 group-title"><h2>'+conf_role_group+'</h2></div></div>');
105                current_role_group = conf_role_group;
106                group_num += 1;
107              }
108
109              if (count == 3) {
110                $("#"+container).append('<div class="row section-content persons '+group_class+'">'+group_html+'</div>');
111                group_html = "";
112                count = 0;
113              }
114              //var str_html = '<div class="row profile"><div class="col-lg-12 mx-auto"><div class="row"><div class="col-lg-3 mx-auto role-profile"><h4>'+conf_role+'</h4></div><div class="col-lg-9 mx-auto"><div class="row"><div class="col-lg-3 mx-auto image-profile"><img src="'+image+'" class=" image-profile"></div><div class="col-lg-9 mx-auto profile-details"><b>'+name+'</b><br/>'+affiliation+'<br/>'+country+'<br />'+str_email+'</div></div></div></div></div></div>';
115              var html_body = html_img+'<div class="person-name">'+name+'</div>'+'<div class="person-info">'+affiliation+'</div>';
116              if (country != "") {
117                html_body += '<div class="person-info">'+country+'</div>';
118              }
119              if (add_person_role) {
120                html_body = html_body + '<div class="person-role">'+conf_role.toUpperCase()+'</div>';
121              }
122              var str_html = '<div class="person col-sm-4">'+html_body+"</div>";
123              group_html = group_html + str_html;
124              count = count + 1;
125          });
126          if (group_html != "") {
127            $("#"+container).append('<div class="row section-content persons d-flex justify-content-center">'+group_html+'</div>');
128          }else {
129              document.getElementById(container).lastChild.innerHTML = document.getElementById(container).lastChild.innerHTML.replace("row section-content persons", "row section-content persons d-flex justify-content-center");
130          }
131        }
132    });
133}
134
135function populate_logo_list(fcsv, page, container) {
136    $.ajax({
137        url : fcsv,
138        dataType: "text",
139        success : function (fdata) {
140          var json_data = $.csv.toObjects(fdata);
141
142          var count = 0;
143          var group_html = "";
144          json_data.forEach(function(entry) {
145              //header: Conference Committee,Name,Email,Status,Contacted,Easychair,country,affiliation
146              // <div class="org col-sm-3"><a href="http://www.semantic-web.at/" target="_blank"><img typeof="foaf:Image" src="https://2022-eu.semantics.cc/sites/2022-eu.semantics.cc/files/styles/logo/public/Sponsors/swc-logo-web.png?itok=dFh75utd" width="150" height="37" alt=""></a></div>
147
148              var name = entry["name"].trim();
149              var img_ratio = entry["img_ratio"].trim().split("/");
150              var img = "img/partners_orgs/"+entry["img"].trim();
151
152              let img_size = 3;
153              var img_width = parseInt(img_ratio[0]) * img_size;
154              var img_height = parseInt(img_ratio[1]) * img_size;
155              var html_img = '<img typeof="foaf:Image" src="'+img+'" width="'+img_width.toString()+'" height="'+img_height.toString()+'" alt="">'
156
157              var url = entry["url"].trim();
158              var html_url = "<a href='"+url+"' target='_blank'>"+html_img+"</a>";
159
160              var str_html = '<div class="org col-sm-3">'+html_url+"</div>";
161              count = count + 1;
162              group_html = group_html + str_html;
163
164              if (count == 4) {
165                $("#"+container).append('<div class="row section-content orgs">'+group_html+'</div>');
166                group_html = "";
167                count = 0;
168              }
169          });
170          if (group_html != "") {
171            $("#"+container).append('<div class="row section-content orgs d-flex justify-content-center">'+group_html+'</div>');
172          }else {
173              document.getElementById(container).lastChild.innerHTML = document.getElementById("org_list").lastChild.innerHTML.replace("row section-content orgs", "row section-content orgs d-flex justify-content-center");
174          }
175        }
176    });
177}
178
179function populate_sponsors_list(fcsv, page, container) {
180    $.ajax({
181        url : fcsv,
182        dataType: "text",
183        success : function (fdata) {
184          var json_data = $.csv.toObjects(fdata);
185          var MAX_ELEMS = 2;
186          var col_size = 12/MAX_ELEMS;
187
188          var sponsor_type_list = ["gold","silver","bronze","startup"]
189          for (var i = 0; i < sponsor_type_list.length; i++) {
190
191            var count = 0;
192            var count_by_type = 0;
193            var group_html = "";
194            sponsor_type = sponsor_type_list[i];
195
196            //add sponsor header
197            $("#"+container+" #s_"+sponsor_type).append('<div class="row 
197section-content sponsor-header justify-content-center"><img width="80px" height="80px" typeof="foaf:Image" src="img/icons/'+sponsor_type+'.svg"></div>');
198
199            json_data.forEach(function(entry) {
200                if (entry["type"].trim() == sponsor_type) {
201
202                    var name = entry["name"].trim();
203                    var img_ratio = entry["img_ratio"].trim().split("/");
204                    var img = "img/sponsors/"+entry["img"].trim();
205
206                    let img_size = 3;
207                    var img_width = parseInt(img_ratio[0]) * img_size;
208                    var img_height = parseInt(img_ratio[1]) * img_size;
209                    // for propotions use:
210                    var html_img = '<img class="sponsor-img" width="'+img_width.toString()+'" height="'+img_height.toString()+'" typeof="foaf:Image" src="'+img+'" alt="">'
211                    //var html_img = '<img class="sponsor-img" typeof="foaf:Image" src="'+img+'" alt="">'
212
213                    var url = entry["url"].trim();
214                    var html_url = "<a href='"+url+"' target='_blank'>"+html_img+"</a>";
215
216                    var str_html = '<div class="sponsor d-flex align-items-center justify-content-center col-'+col_size.toString()+'">'+html_url+"</div>";
217                    count = count + 1;
218                    count_by_type = count_by_type + 1;
219                    group_html = group_html + str_html;
220
221                    if (count == MAX_ELEMS) {
222                      $("#"+container+" #s_"+sponsor_type).append('<div class="row section-content sponsors justify-content-center">'+group_html+'</div>');
223                      group_html = "";
224                      count = 0;
225                    }
226                }
227            });
228            if (group_html != "") {
229              while (MAX_ELEMS - count > 0) {
230                //group_html += '<div class="sponsor col-'+col_size.toString()+'"></div>';
231                count += 1;
232              }
233              $("#"+container+" #s_"+sponsor_type).append('<div class="row section-content sponsors justify-content-center">'+group_html+'</div>');
234            }
235            if (count_by_type == 0) {
236              $("#"+container+" #s_"+sponsor_type).remove();
237            }
238
239          }
240
241
242        }
243    });
244}
245
246function populate_keyspeakers(fcsv, page, container, baseurl) {
247    $.ajax({
248        url : fcsv,
249        dataType: "text",
250        success : function (fdata) {
251          var json_data = $.csv.toObjects(fdata);
252
253          var count = 0;
254          var group_html = "";
255          json_data.forEach(function(entry) {
256              //header: Conference Committee,Name,Email,Status,Contacted,Easychair,country,affiliation
257              // <div class="org col-sm-3"><a href="http://www.semantic-web.at/" target="_blank"><img typeof="foaf:Image" src="https://2022-eu.semantics.cc/sites/2022-eu.semantics.cc/files/styles/logo/public/Sponsors/swc-logo-web.png?itok=dFh75utd" width="150" height="37" alt=""></a></div>
258
259              var e_type = entry["type"].trim().split("-").map(item => "s-" + item).join(" ");
260              var name = entry["name"].trim();
261              var affiliation = entry["affiliation"].trim();
262              var presentation = entry["presentation"].trim();
263              var page_name = entry["page_name"].trim();
264              var img = entry["image"].trim();
265              let img_size = "60"
266
267              var html_img = '<img src="img/LTILogoByLine.png" class="image-profile-type"><img typeof="foaf:Image" src="img/person/'+img+'" class="image-profile" alt="">'
268              var html_presentation = "<a href='"+baseurl+"page/"+page_name+"' class='person-talk'>"+presentation+"</a>";
269              var html_body = html_img+'<div class="person-name">'+name+'</div>'+'<div class="person-info">'+affiliation+'</div>'+html_presentation;
270
271              var str_html = '<div class="ks col-sm-4 '+e_type+'">'+html_body+"</div>";
272              group_html = group_html + str_html;
273              count = count + 1;
274              if (count == 3) {
275                $("#"+container).append('<div class="row section-content kss">'+group_html+'</div>');
276                group_html = "";
277                count = 0;
278              }
279          });
280          if (group_html != "") {
281            $("#"+container).append('<div class="row section-content kss d-flex justify-content-center">'+group_html+'</div>');
282          }else {
283              document.getElementById(container).lastChild.innerHTML = document.getElementById(container).lastChild.innerHTML.replace("row section-content kss", "row section-content kss d-flex justify-content-center");
284          }
285        }
286    });
287}
288
289function populate_quotes_container(fcsv, page, container, baseurl) {
290
291  $.ajax({
292      url : fcsv,
293      dataType: "text",
294      success : function (fdata) {
295        var json_data = $.csv.toObjects(fdata);
296        var body_html = `
297              <div id="carousel_container" class="carousel slide" data-ride="carousel">
298                  <ol class="carousel-indicators">
299                    __INDICATORS__
300                  </ol>
301                  <div class="carousel-inner">
302                      __SLIDES__
303                  </div>
304              </div>
305        `;
306
307        all_html_elems = "";
308        all_html_ol = "";
309        count_slide = 0;
310        is_active = "active";
311        json_data.forEach(function(entry) {
312          var name = entry["person"].trim();
313          var affiliation = entry["affiliation"];
314          var quote = entry["quote"];
315
316          var image = "../img/person/"+entry["img"].trim();
317          if (page == "index") {
318            image = baseurl+"img/person/"+entry["img"].trim();
319          }
320
321          var html_img = '<img typeof="foaf:Image" src="'+image+'" class="image-profile" alt="">';
322          var person_body = html_img+'<div class="person-name">'+name+'</div>'+'<div class="person-info">'+affiliation+'</div>';
323
324          all_html_elems += `
325              <div class="carousel-item `+is_active+`">
326                <div class="row">
327                  <div class="col-lg-5 mx-auto text-center align-self-center">`+person_body+`</div>
328                  <div class="col-lg-7 mx-auto text-justify align-self-center person-quote"><i>"`+quote+`"</i></div>
329                </div>
330          </div>`;
331          all_html_ol += `<li data-target="#carousel_container" data-slide-to="`+count_slide.toString()+`" class="`+is_active+`"></li>`;
332          count_slide += 1;
333          is_active = "";
334        });
335
336        body_html = body_html.replace('__INDICATORS__', all_html_ol);
337        body_html = body_html.replace('__SLIDES__', all_html_elems);
338        $("#"+container).append(body_html);
339      }
340    });
341}
342
343
344function populate_news_container(fcsv, page, container, baseurl) {
345  $.ajax({
346      url : fcsv,
347      dataType: "text",
348      success : function (fdata) {
349        var json_data = $.csv.toObjects(fdata);
350        var body_html = `<div class="row section-content"> __NEWS__ </div>`;
351        var all_html_elems = "";
352        var count_news = 1;
353        const MAX_NEWS = 4;
354        json_data.forEach(function(entry) {
355          if (count_news <= MAX_NEWS) {
356            var title = entry["title"].trim();
357            var text = entry["text"];
358            var page_name = entry["page_name"];
359            var image = "../img/news/"+entry["img"].trim();
360            if (page == "index") {
361              image = baseurl+"img/news/"+entry["img"].trim();
362            }
363
364            var html_img = '<div class="container-img-news"><img typeof="foaf:Image" src="'+image+'" class="news-img" alt=""></div>';
365            all_html_elems += `<div class="col-lg-3 mx-auto text-justify news-box">`
366                    + html_img
367                    + `<h5>`+title + `</h5>`
368                    + `<div class="news-abs">`
369                    + text
370                    + `</div>`
371                    + `<div class="news-link text-right"><a href="`+baseurl+"page/news?page="+page_name+`">READ MORE</a></div>`
372                    + `</div>`;
373          }
374          count_news += 1;
375        });
376
377        body_html = body_html.replace('__NEWS__', all_html_elems);
378        $("#"+container).append(body_html);
379      }
380    });
381}
382
383function populate_news_list_container(fcsv, page, container, baseurl) {
384  $.ajax({
385      url : fcsv,
386      dataType: "text",
387      success : function (fdata) {
388        var json_data = $.csv.toObjects(fdata);
389        var body_html = ``;
390        var all_html_elems = `<div class='row'><div style="padding:5px;" class="col-lg-12 mx-auto text-center"><h2>ALL NEWS</h2></div></div><div><div>`;
391        var prev_date_group = "";
392        json_data.forEach(function(entry) {
393          var title = entry["title"].trim();
394          var page_name = entry["page_name"];
395          //get date
396          const index_months = {  "01": "January",  "02": "February",  "03": "March",  "04": "April",  "05": "May",  "06": "June",  "07": "July",  "08": "August",  "09": "September",  "10": "October",  "11": "November",  "12": "December"};
397          var parts_date = page_name.split("-");
398          const year = parts_date[0];
399          const month = parts_date[1];
400          const day = parts_date[2];
401          const g_date_id = month+"_"+year;
402          const g_date = index_months[month] + ", "+ year;
403          if (g_date != prev_date_group) {
404              all_html_elems += `</div></div>`
405                +`<div class="card-header" id="heading_`+g_date_id+`"><button class="btn" data-toggle="collapse" data-target="#collapse_`+g_date_id+`" aria-expanded="true" aria-controls="collapse_`+g_date_id+`">`
406                + g_date
407                + `</button></div>`
408                + `<div id="collapse_`+g_date_id+`" class="collapse show" aria-labelledby="heading_`+g_date_id+`" data-parent="#allnews">`
409                + `<div class="card-body">`;
410              prev_date_group = g_date
411          }
412
413          all_html_elems += `<div class="row">
414                              <a href="`+baseurl+"page/news?page="+page_name+`"> >> `+title+`</a>
415                            </div>`;
416        });
417
418        all_html_elems += `</div></div>`
419                            +`<div class="card-header" id="heading_news_2022"><a href="https://2022-eu.semantics.cc/interviews-and-news">Check past news (from SEMANTiCS 2022)</a></div>`;
420
421        body_html = all_html_elems + `</div></div>`;
422        body_html = `<div id="allnews"><div class="card">`+body_html+`</div></div>`;
423        $("#"+container).append(body_html);
424      }
425    });
426}
427
428function populate_ks_att(fcsv, page, container, baseurl) {
429  const current_page = urlParams.get('page');
430  $.ajax({
431      url : fcsv,
432      dataType: "text",
433      success : function (fdata) {
434        var json_data = $.csv.toObjects(fdata);
435        var body_html = ``;
436        var all_html_elems = `<div class='row'><div style="padding:5px;" class="col-lg-12 mx-auto text-center"><h2>ALL Available material for this talk</h2></div></div><div><div>`;
437        var prev_date_group = "";
438        json_data.forEach(function(entry) {
439          var page_name = entry["page_name"];
440          if (current_page == page_name) {
441            console.log(entry);
442          }
443
444          all_html_elems += `<div class="row"><a href="`+baseurl+"page/kp?page="+page_name+`"> >> `+title+`</a></div>`;
445        });
446
447        all_html_elems += `</div></div>`;
448
449        body_html = all_html_elems + `</div></div>`;
450        body_html = `<div id="allnews"><div class="card">`+body_html+`</div></div>`;
451        $("#"+container).append(body_html);
452      }
453    });
454}
455
456
457function build_pc(conf){
458  get_pc_csv(conf["baseurl"]+"content/pc.csv", "pc");
459}
460
461function build_oc(conf){
462  get_oc_csv(conf["baseurl"]+"content/oc.csv", "oc", "oc_members");
463}
464
465function build_organizers_list(conf){
466  populate_logo_list(conf["baseurl"]+"content/organizers.csv", "index","org_list");
467}
468
469function build_partners_list(conf){
470  populate_logo_list(conf["baseurl"]+"content/partners.csv", "index","partners_list");
471}
472
473function build_sponsors_list(conf){
474  populate_sponsors_list(conf["baseurl"]+"content/sponsors.csv", "index","sponsors_list");
475}
476
477function build_ks(conf){
478  populate_keyspeakers(conf["baseurl"]+"content/keyspeakers.csv", "index", "keynote_list", conf["baseurl"]);
479}
480function build_ks_att(conf){
481  populate_ks_att(conf["baseurl"]+"content/keyspeakers.csv", "keyspeakers","ks_att", conf["baseurl"]);
482}
483
484function build_quotes(conf){
485  populate_quotes_container(conf["baseurl"]+"content/quotes.csv", "index","quotes", conf["baseurl"]);
486}
487
488function build_news(conf){
489  populate_news_container(conf["baseurl"]+"content/news.csv", "index","news", conf["baseurl"]);
490}
491
492function build_news_list(conf){
493  populate_news_list_container(conf["baseurl"]+"content/news.csv", "news","news_list", conf["baseurl"]);
494}

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.