class News { constructor(id, title, clean_title, pub_date, description, link, image, source, tags, redirect) { this.id = id; this.title = title; this.clean_title = clean_title; this.pub_date = pub_date; this.description = description; this.link = link; this.image = image; this.source = source; this.tags = tags; this.redirect = redirect; } display() { let newsId = "news-"+this.id; let newsHref = this.redirect ? this.redirect : "/news/" + this.clean_title; let newsImage = this.image ? this.image : "/static/img/source/" + this.source.big_image_name; $("#news").append( $("
").addClass("text-center").append( $("
").addClass("card w-100 d-inline-block bg-light mb-3 border-0 rounded-0").attr("id", newsId).append( $("").attr("href", newsHref).attr("target", this.redirect ? "_blank" : "_self").addClass("text-decoration-none").append( $("").addClass("card-img-top rounded-0").attr("src", newsImage).attr("alt", "src") ), $("
").addClass("card-body").append( $("").attr("href", newsHref).attr("target", this.redirect ? "_blank" : "_self").addClass("text-decoration-none").append( $("
").addClass("card-title p-0 m-2 text-dark").text(this.title) ), $("
").addClass("text-right p-0 m-2 text-muted").text(moment(this.pub_date).fromNow()), $("
").addClass("tags overflow-hidden p-0 m-2") ), ) ) ); $.each(this.tags.slice(0, 4), function (index, tag) { $("#" + newsId).find(".tags").append( $("").attr("type", "button").addClass("card-link btn btn-light border-primary px-2 py-1 my-1 mx-2").append( $("").attr("href", "/tag/" + tag[1]).addClass("text-primary small").append( $("").addClass("fa fa-tag pl-1").attr("aria-hidden", "true"), $("").addClass("pl-1").text(" " + tag[0]) ) ) ) }); } static displayNewsList(sportId, leagueId, search, tag, offsetId, quantity) { $.ajax({ url: "/api/news/list", method: "GET", data: { sportId: sportId, leagueId: leagueId, search: search, tag: tag, offsetId: offsetId, quantity: quantity }, dataType: "json", success: function (data) { if ('news' in data) { $.each(data.news, function (index, n) { new News(n.id, n.title, n.clean_title, n.pub_date, n.description, n.link, n.image, n.source, n.tags, n.redirect).display(); }) } scrollLock = false; }, error: function (data) { console.log(data); } }) } }