From 258597f053ffbc6e140a1dee6e5b10314f824fd0 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Thu, 7 Apr 2016 10:12:29 -0700 Subject: [PATCH] Fix news jade pages Remove unused pages --- server/boot/randomAPIs.js | 7 - server/boot/story.js | 22 ++- .../deprecated.jade} | 0 server/views/{ => news}/feed.jade | 0 server/views/news/index.jade | 48 +++++++ server/views/stories/hot-stories.jade | 90 ------------- server/views/stories/index.jade | 32 ----- server/views/stories/news-nav.jade | 127 ------------------ server/views/stories/preliminary-submit.jade | 51 ------- server/views/stories/show.jade | 41 ------ server/views/stories/submit-story.jade | 41 ------ 11 files changed, 57 insertions(+), 402 deletions(-) rename server/views/{resources/camper-news-deprecated.jade => news/deprecated.jade} (100%) rename server/views/{ => news}/feed.jade (100%) create mode 100644 server/views/news/index.jade delete mode 100644 server/views/stories/hot-stories.jade delete mode 100644 server/views/stories/index.jade delete mode 100644 server/views/stories/news-nav.jade delete mode 100644 server/views/stories/preliminary-submit.jade delete mode 100644 server/views/stories/show.jade delete mode 100644 server/views/stories/submit-story.jade diff --git a/server/boot/randomAPIs.js b/server/boot/randomAPIs.js index f12a270843..2995082fb2 100644 --- a/server/boot/randomAPIs.js +++ b/server/boot/randomAPIs.js @@ -43,7 +43,6 @@ module.exports = function(app) { router.get('/how-nonprofit-projects-work', howNonprofitProjectsWork); router.get('/code-of-conduct', codeOfConduct); router.get('/academic-honesty', academicHonesty); - router.get('/news', news); router.get( '/the-fastest-web-page-on-the-internet', @@ -285,12 +284,6 @@ module.exports = function(app) { }); } - function news(req, res) { - res.render('resources/camper-news-deprecated', { - title: 'Camper News' - }); - } - function twitch(req, res) { res.redirect('https://twitch.tv/freecodecamp'); } diff --git a/server/boot/story.js b/server/boot/story.js index 6849812874..2a7a11be0b 100755 --- a/server/boot/story.js +++ b/server/boot/story.js @@ -41,6 +41,7 @@ module.exports = function(app) { const redirectToNews = (req, res) => res.redirect('/news'); const deprecated = (req, res) => res.sendStatus(410); + router.get('/news', showNews); router.post('/news/userstories', deprecated); router.get('/news/hot', hotJSON); router.get('/news/feed', RSSFeed); @@ -56,6 +57,10 @@ module.exports = function(app) { app.use(router); + function showNews(req, res) { + res.render('news/deprecated', { title: 'Camper News' }); + } + function replaceStoryWithNews(req, res) { var url = req.originalUrl.replace(/^\/stories/, '/news'); return res.redirect(url); @@ -72,7 +77,7 @@ module.exports = function(app) { storiesData$.subscribe( data => { res.set('Content-Type', 'text/xml'); - res.render('feed', { + res.render('news/feed', { title: 'FreeCodeCamp Camper News RSS Feed', description: 'RSS Feed for FreeCodeCamp Top 100 Hot Camper News', url: 'http://www.freecodecamp.com/news', @@ -105,25 +110,16 @@ module.exports = function(app) { return res.redirect('../stories/' + dashedNameFull); } - var username = req.user ? req.user.username : ''; - // true if any of votes are made by user - var userVoted = story.upVotes.some(function(upvote) { - return upvote.upVotedByUsername === username; - }); - - return res.render('stories/index', { - title: story.headline, + return res.render('news/index', { + title: story.headline || 'news', link: story.link, originalStoryLink: dashedName, author: story.author, rank: story.upVotes.length, - upVotes: story.upVotes, id: story.id, timeAgo: moment(story.timePosted).fromNow(), image: story.image, - page: 'show', - storyMetaDescription: story.metaDescription, - hasUserVoted: userVoted + storyMetaDescription: story.metaDescription }); }, next diff --git a/server/views/resources/camper-news-deprecated.jade b/server/views/news/deprecated.jade similarity index 100% rename from server/views/resources/camper-news-deprecated.jade rename to server/views/news/deprecated.jade diff --git a/server/views/feed.jade b/server/views/news/feed.jade similarity index 100% rename from server/views/feed.jade rename to server/views/news/feed.jade diff --git a/server/views/news/index.jade b/server/views/news/index.jade new file mode 100644 index 0000000000..c645be7c88 --- /dev/null +++ b/server/views/news/index.jade @@ -0,0 +1,48 @@ +extends ../layout +block content + h1.text-center Camper News + hr + .spacer + .row + .col-xs-12 + h2 We have discontinued Camper News in favor of our + a(href='http://reddit.com/r/freecodecamp')  Subreddit + | . + h3 Thank you to all of the campers who have contributed links over the past year. Our + a(href='http://reddit.com/r/freecodecamp')  Subreddit + |   is now the best place to share coding-related links. + .spacer + hr + #search-results + .spacer + #story-list + ul#stories + .spacer + h3.row + .col-xs-2.col-sm-1 + a(href="/" + author.username) + img(src="#{author.picture}", class='img-news') + .col-xs-10.col-sm-10 + .col-xs-12.negative-28 + a(href="#{link}", target="_blank") + h3= title + h6 + .col-xs-12.positive-15.hidden-element#image-display + .media + .media-left + img.url-preview.media-object(src="#{image}", alt="#{storyMetaDescription}") + .media-body + .col-xs-12.col-sm-12.col-md-6 + h4= storyMetaDescription + .col-xs-12 + .spacer + span#storyRank= rank + (rank > 1 ? " points" : " point") + |  ·  + span Posted #{timeAgo} + span  by  + a(href="/" + author.username) @#{author.username} + + script. + if (image) { + $('#image-display').removeClass('hidden-element') + } diff --git a/server/views/stories/hot-stories.jade b/server/views/stories/hot-stories.jade deleted file mode 100644 index 0666058399..0000000000 --- a/server/views/stories/hot-stories.jade +++ /dev/null @@ -1,90 +0,0 @@ -.spacer -.spacer -#story-list.story-list - script. - var getLinkedName = function getLinkedName(name) { - return name.trim().toLowerCase().replace(/\s/g, '-'); - } - $.ajax({ - url: '/news/hot', - type: 'GET' - }) - .success( - function(data) { - for (var i = 0; i < data.length; i++) { - var div = document.createElement('div'); - var linkedName = getLinkedName(data[i].storyLink); - var rank = data[i].rank; - var alreadyUpvoted = false; - if (typeof username !== 'undefined') { - alreadyUpvoted = data[i].upVotes.some(function(vote) { - return vote.upVotedByUsername === username - }); - } - - $(div) - .html( - "
" + - "
" + - "" + - "" + - "" + - "
" + - "
" + - "" + - data[i].headline + - "" + - "
" + - "
" + - rank + (rank > 1 ? " points" : " point") + " · posted " + - moment(data[i].timePosted).fromNow() + - " by @" + data[i].author.username + " " + - "
" + - "
" + - "
" + - (typeof username !== 'undefined' ? - "" : - "upvote") + - "" + - "
" + - "
" + - "" - ); - $(div).addClass('story-list news-box') - $(div).appendTo($('#story-list')); - $(div).find('.btn-upvote').each(function(idx, btn) { - var $btn = $(btn); - if (alreadyUpvoted) { - $btn.addClass('disabled'); - $btn.text('upvoted!'); - } - $btn.data('upVotes', data[i].upVotes); - }); - } - }); diff --git a/server/views/stories/index.jade b/server/views/stories/index.jade deleted file mode 100644 index 56958a7a08..0000000000 --- a/server/views/stories/index.jade +++ /dev/null @@ -1,32 +0,0 @@ -extends ../layout -block content - if (user) - script. - var isLoggedIn = true; - var userId = !{JSON.stringify(user.id)}; - var username = !{JSON.stringify(user.username)}; - else - script. - var isLoggedIn = false; - script. - var challengeName = 'Camper News'; - var page = !{JSON.stringify(page)}; - h1.text-center Camper News - hr - .spacer - include news-nav - .spacer - if (page === 'hot') - include hot-stories - if (page === 'submit') - if (user) - include preliminary-submit - else - .spacer - .text-center - a.btn.btn-cta.signup-btn.btn-primary(href="/login") Sign in to post your story (it's free) - .spacer - if (page === 'storySubmission') - include submit-story - if (page === 'show') - include show diff --git a/server/views/stories/news-nav.jade b/server/views/stories/news-nav.jade deleted file mode 100644 index 345b2eb895..0000000000 --- a/server/views/stories/news-nav.jade +++ /dev/null @@ -1,127 +0,0 @@ -.row - .col-xs-12 - h2 We are retiring Camper News in favor of our - a(href='http://reddit.com/r/freecodecamp') Subreddit - | . - h3 Thank you to all of the campers who have contributed links over the past year. We will keep Camper News accessible until May. Our - a(href='http://reddit.com/r/freecodecamp') Subreddit - |   is now the best place to share coding-related links. - .spacer - hr - .spacer - .col-xs-12.col-sm-3 - span - a.btn.btn-primary.btn-bigger.btn-block.btn-responsive(href='/stories/submit' class="#{ page === 'hot' ? '' : 'hidden' }") Submit a link - span - a.btn.btn-success.btn-bigger.btn-block.btn-responsive(href='/news/' class="#{ (page !== 'hot') ? '' : 'hidden' }") All - .visible-xs - .button-spacer - .col-xs-12.col-sm-9 - .input-group - input#searchArea.big-text-field.field-responsive.form-control(type='text', placeholder='Search term or @username') - span.input-group-btn - button#searchbutton.btn.btn-bigger.btn-primary.btn-responsive(type='button') Search - .spacer - -#search-results - -.spacer -#story-list - ul#stories -script. - $('#searchArea').keypress(function (event) { - if (event.keyCode === 13 || event.which === 13) { - executeSearch(); - $('#searchArea').focus(); - event.preventDefault(); - } - }); - $('#searchbutton').on('click', function () { - executeSearch(); - }); - function executeSearch() { - $('#stories').empty(); - var searchTerm = $('#searchArea').val(), - url = '/stories/search'; - if (searchTerm.match(/^\@\w+$/)) { - url = '/news/userstories'; - searchTerm = searchTerm.match(/^\@\w+$/)[0].split('@')[1]; - } - var getLinkedName = function getLinkedName(name) { - return name.toLowerCase().replace(/\s/g, '-'); - } - $.post(url, { search: searchTerm }) - .fail(function(xhr, textStatus, errorThrown) { - $('#search-results').empty(); - var div = document.createElement("div"); - $(div).html("

No Results Found

"); - $(div).appendTo($('#search-results')); - }) - .done(function(data, textStatus, xhr) { - $('#search-results').empty(); - var spacer = document.createElement('div'); - $(spacer).html("
"); - $(spacer).appendTo($('#search-results')); - for (var i = 0; i < data.length; i++) { - var div = document.createElement('div'); - var linkedName = getLinkedName(data[i].storyLink); - var rank = data[i].rank; - $(div).html( - "
" + - "
" + - "" + - "" + - "" + - "
" + - "
" + - "" + - data[i].headline + - "" + - "
" + - "
" + - "
" + - rank + (rank > 1 ? " points" : " point") + " · posted " + - moment(data[i].timePosted).fromNow() + - " by " + - "@" + data[i].author.username + - " " + - "
" + - "
" + - "
" + - "more info" + - "
" + - "
" + - "
" + - "") - $(div).addClass('story-list news-box-search') - $(div).appendTo($('#search-results')); - } - var hr = document.createElement("div"); - $(hr).html("

End search results

") - $(hr).appendTo($('#search-results')); - }); - } diff --git a/server/views/stories/preliminary-submit.jade b/server/views/stories/preliminary-submit.jade deleted file mode 100644 index 70af2d94ef..0000000000 --- a/server/views/stories/preliminary-submit.jade +++ /dev/null @@ -1,51 +0,0 @@ -form.input-group(id='URLSubmit' name='URLSubmit') - input#story-url.big-text-field.field-responsive.form-control(placeholder='Paste your link here', name='link', type='url', required, autofocus) - span.input-group-btn - button#preliminary-story-submit.btn.btn-bigger.btn-primary.btn-responsive(type='submit') Submit -.spacer - - script. - $('#story-url').on('keypress', function(e) { - if (e.keyCode === 13) { - $('#preliminary-story-submit').click(); - } - }); - function preliminaryStorySubmit(e) { - if (!$('#URLSubmit')[0].checkValidity()) { - return null; - } - e.preventDefault(); - - var storyURL = $('#story-url').val(); - $('#preliminary-story-submit').attr('disabled', 'disabled'); - - $.post('/stories/preliminary', - { - data: { - url: storyURL - } - }) - .fail(function (xhr, textStatus, errorThrown) { - $('#preliminary-story-submit').attr('disabled', false); - }) - .done(function (data, textStatus, xhr) { - if (data.alreadyPosted) { - window.location = data.storyURL; - } else { - window.location = '/stories/submit/new-story?url=' + - encodeURIComponent(data.storyURL) + - '&title=' + encodeURIComponent(data.storyTitle) + - '&image=' + encodeURIComponent(data.storyImage) + - '&description=' + encodeURIComponent(data.storyMetaDescription); - } - }); - } - - $('#preliminary-story-submit').on('click', preliminaryStorySubmit); - - arr = $( "h3 input:checked" ) - .map(function() { - return this.id; - }) - .get() - .join('&'); diff --git a/server/views/stories/show.jade b/server/views/stories/show.jade deleted file mode 100644 index cced0f41f5..0000000000 --- a/server/views/stories/show.jade +++ /dev/null @@ -1,41 +0,0 @@ -script. - var storyId = !{JSON.stringify(id)}; - var originalStoryLink = !{JSON.stringify(originalStoryLink)}; - var upVotes = !{JSON.stringify(upVotes)}; - var image = !{JSON.stringify(image)}; - var hasUserVoted = !{JSON.stringify(hasUserVoted)}; - -h3.row - .col-xs-2.col-sm-1 - a(href="/" + author.username) - img(src="#{author.picture}", class='img-news') - .col-xs-10.col-sm-10 - .col-xs-12.negative-28 - a(href="#{link}", target="_blank") - h3= title - h6 - .col-xs-12.positive-15.hidden-element#image-display - .media - .media-left - img.url-preview.media-object(src="#{image}", alt="#{storyMetaDescription}") - .media-body - .col-xs-12.col-sm-12.col-md-6 - h4= storyMetaDescription - .col-xs-12 - .spacer - if !hasUserVoted - a#upvote.btn.btn-no-shadow.btn-primary.btn-xs.btn-primary-ghost Upvote - |  ·  - else - a#upvote.btn.disabled.btn-no-shadow.btn-primary.btn-xs.btn-primary-ghost Upvoted! - |  ·  - span#storyRank= rank + (rank > 1 ? " points" : " point") - |  ·  - span Posted #{timeAgo} - span  by  - a(href="/" + author.username) @#{author.username} - -script. - if (image) { - $('#image-display').removeClass('hidden-element') - } diff --git a/server/views/stories/submit-story.jade b/server/views/stories/submit-story.jade deleted file mode 100644 index 66b91fc4f1..0000000000 --- a/server/views/stories/submit-story.jade +++ /dev/null @@ -1,41 +0,0 @@ -.spacer -.col-xs-12 - script. - var main = window.main || { init: [] }; - main.storyURL = !{JSON.stringify(storyURL)}; - main.storyTitle = !{JSON.stringify(storyTitle)}; - main.storyImage = !{JSON.stringify(storyImage)}; - main.storyMetaDescription = !{JSON.stringify(storyMetaDescription)}; - - form.form-horizontal.control-label-story-submission#story-submission-form(name="submitStory") - .col-xs-12 - .form-group - .col-xs-12.col-md-1 - label.control-label.control-label-story-submission(for='name') Link - .col-xs-12.col-md-11 - input#story-url.form-control(name='Link', disabled, value='#{storyURL}') - .form-group - .col-xs-12.col-md-1 - label.control-label.control-label-story-submission(for='name') Title - .col-xs-12.col-md-11 - input#story-title.form-control(value='#{storyTitle}', name='Title', maxlength='90', autocomplete="off", autofocus, required) - .form-group - .col-xs-12.col-md-offset-1 - span.pull-left#textarea_feedback - .form-group - .col-xs-11.col-md-offset-1 - .hidden-element#image-display - .media - .media-left - img.url-preview.media-object(src="#{storyImage}", alt="#{storyMetaDescription}") - .media-body - .col-xs-12 - p= storyMetaDescription - .spacer - .row - .form-group - button.btn.btn-bigger.btn-block.btn-primary#story-submit(type='submit', onclick="return false;") Submit - script. - if (main.storyImage) { - $('#image-display').removeClass('hidden-element'); - }