diff options
author | Arnaud Bos <arnaud.bos@aeon-consulting.fr> | 2012-10-20 02:52:02 +0200 |
---|---|---|
committer | Arnaud Bos <arnaud.bos@aeon-consulting.fr> | 2012-10-20 02:52:02 +0200 |
commit | 3ffd14fa4da0ca71e1f97a070973e4994bae8f61 (patch) | |
tree | dd7fea1a54417fc5df25eb559870c6ad06019ef1 /syte/static/js/components | |
parent | 01a8792a5116a305368d9d98fa366923086e0633 (diff) | |
download | pelican-themes-3ffd14fa4da0ca71e1f97a070973e4994bae8f61.tar.gz |
add client side social integration, use webassets
Diffstat (limited to 'syte/static/js/components')
-rw-r--r-- | syte/static/js/components/base.js | 32 | ||||
-rw-r--r-- | syte/static/js/components/blog-posts.js | 143 | ||||
-rw-r--r-- | syte/static/js/components/dribbble.js | 53 | ||||
-rw-r--r-- | syte/static/js/components/github.js | 46 | ||||
-rw-r--r-- | syte/static/js/components/instagram.js | 66 | ||||
-rw-r--r-- | syte/static/js/components/links.js | 67 | ||||
-rw-r--r-- | syte/static/js/components/mobile.js | 15 | ||||
-rw-r--r-- | syte/static/js/components/twitter.js | 82 |
8 files changed, 0 insertions, 504 deletions
diff --git a/syte/static/js/components/base.js b/syte/static/js/components/base.js deleted file mode 100644 index 0d60276..0000000 --- a/syte/static/js/components/base.js +++ /dev/null @@ -1,32 +0,0 @@ -//Global configs and functions shared between js - -function numberWithCommas(x) { - return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); -} - -require.config({ - baseUrl: "/static/", - paths: { - "text": "js/libs/text", - "json": "js/libs/json" - }, - waitSeconds: 15 -}); - -var spin_opts = { - lines: 9, - length: 5, - width: 2, - radius: 4, - rotate: 9, - color: '#4c4c4c', - speed: 1.5, - trail: 40, - shadow: false, - hwaccel: false, - className: 'spinner', - zIndex: 2e9 -}; - - - diff --git a/syte/static/js/components/blog-posts.js b/syte/static/js/components/blog-posts.js deleted file mode 100644 index 27f8ab5..0000000 --- a/syte/static/js/components/blog-posts.js +++ /dev/null @@ -1,143 +0,0 @@ - -function fetchBlogPosts(post, tag) { - var blog_fetch_url = '/blog.json'; - - if (post) - blog_fetch_url = '/post/' + post; - else if (tag) - blog_fetch_url = '/tags/' + tag; - - $.getJSON(blog_fetch_url, function(blog_posts) { - require(["text!templates/blog-post-text.html", - "text!templates/blog-post-photo.html", - "text!templates/blog-post-link.html", - "text!templates/blog-post-video.html", - "text!templates/blog-post-audio.html", - "text!templates/blog-post-quote.html"], - - function(text_post_template, photo_post_template, - link_post_template, video_post_template, audio_post_template, - quote_post_template) { - - var text_template = Handlebars.compile(text_post_template); - var photo_template = Handlebars.compile(photo_post_template); - var link_template = Handlebars.compile(link_post_template); - var video_template = Handlebars.compile(video_post_template); - var audio_template = Handlebars.compile(audio_post_template); - var quote_template = Handlebars.compile(quote_post_template); - - $('.loading').remove(); - $.each(blog_posts.response.posts, function(i, p) { - p.formated_date = moment(p.date).format('MMMM DD, YYYY') - - if (p.type == 'text') - $('#blog-posts').append(text_template(p)); - else if (p.type == 'photo') - $('#blog-posts').append(photo_template(p)); - else if (p.type == 'link') - $('#blog-posts').append(link_template(p)); - else if (p.type == 'video') - $('#blog-posts').append(video_template(p)); - else if (p.type == 'audio') - $('#blog-posts').append(audio_template(p)); - else if (p.type == 'quote') - $('#blog-posts').append(quote_template(p)); - - }); - - setupLinks(); - adjustBlogHeaders(); - prettyPrint(); - setTimeout(setupBlogHeaderScroll, 1000); - adjustSelection('home-link'); - }); - }); -} - -function adjustBlogHeaders() { - if(isMobileView) - return; - - $('.blog-section article hgroup').each(function(i, e) { - $(e).find('h3 a').css({ - 'margin-top': '-' + ($(e).height() + 100) + 'px' - }).addClass('adjusted'); - }); -} - -function setupBlogHeaderScroll() { - - if(isMobileView) - return; - - var previousTarget, - activeTarget, - $window = $(window), - offsets = [], - targets = [], - $posts = $('.blog-section article hgroup h3 a').each(function() { - if (this.hash) { - targets.push(this.hash); - offsets.push($(this.hash).offset().top); - } - }); - - function processScroll(e) { - var scrollTop = $window.scrollTop(), - i = offsets.length; - - for (i; i--;) { - if (activeTarget != targets[i] && scrollTop > offsets[i] && (!offsets[i + 1] || scrollTop < offsets[i + 1])) { - - var hgroup = $(activeTarget).find("hgroup"); - var margintop = ''; - if (hgroup.length) { - margintop = '-' + ($(hgroup[0]).height() + 100) + 'px'; - } - - //set current target to be absolute - $("h3 a[href=" + activeTarget + "]").removeClass("active").css({ - position: "absolute", - top: "auto", - 'margin-top': margintop - }); - - //set new target to be fixed - activeTarget = targets[i]; - $("h3 a[href=" + activeTarget + "]").attr('style', '').addClass("active"); - } - - if (activeTarget && activeTarget != targets[i] && scrollTop + 50 >= offsets[i] && (!offsets[i + 1] || scrollTop + 50 <= offsets[i + 1])) { - - // if it's close to the new target scroll the current target up - $("h3 a[href=" + activeTarget + "]") - .removeClass("active") - .css({ - position: "absolute", - top: ($(activeTarget).outerHeight(true) + $(activeTarget).offset().top - 50) + "px", - bottom: "auto" - }); - } - - if (activeTarget == targets[i] && scrollTop > offsets[i] - 50 && (!offsets[i + 1] || scrollTop <= offsets[i + 1] - 50)) { - // if the current target is not fixed make it fixed. - if (!$("h3 a[href=" + activeTarget + "]").hasClass("active")) { - $("h3 a[href=" + activeTarget + "]").attr('style', '').addClass("active"); - } - } - } - } - - $posts.click(function(e) { - if (!this.hash) - return; - $('html, body').stop().animate({ - scrollTop: $(this.hash).offset().top - }, 500, 'linear'); - - processScroll(); - e.preventDefault(); - }); - - $window.scroll(processScroll).trigger("scroll"); -} diff --git a/syte/static/js/components/dribbble.js b/syte/static/js/components/dribbble.js deleted file mode 100644 index 7c2ed59..0000000 --- a/syte/static/js/components/dribbble.js +++ /dev/null @@ -1,53 +0,0 @@ - -function setupDribbble(url, el) { - var href = el.href; - - if ($('#dribbble-profile').length > 0) { - window.location = href; - return; - } - - var params = url.attr('path').split('/').filter(function(w) { - if (w.length) - return true; - return false; - }) - - if (params.length == 1) { - var username = params[0]; - - var spinner = new Spinner(spin_opts).spin(); - $('#dribbble-link').append(spinner.el); - - require(["json!/dribbble/" + username, "text!templates/dribbble-view.html"], - function(dribbble_data, dribbble_view) { - if (dribbble_data.message || dribbble_data.length == 0) { - window.location = href; - return; - } - - var template = Handlebars.compile(dribbble_view); - - var user = dribbble_data.shots[0].player; - user.following_count = numberWithCommas(user.following_count); - user.followers_count = numberWithCommas(user.followers_count); - user.likes_count = numberWithCommas(user.likes_count); - - var template_data = { - "user": user, - "shots": dribbble_data.shots - } - - $(template(template_data)).modal().on('hidden', function () { - $(this).remove(); - adjustSelection('home-link'); - }) - - spinner.stop(); - }); - - return; - } - - window.location = href; -} diff --git a/syte/static/js/components/github.js b/syte/static/js/components/github.js deleted file mode 100644 index 7bad5ea..0000000 --- a/syte/static/js/components/github.js +++ /dev/null @@ -1,46 +0,0 @@ - -function setupGithub(url, el) { - var href = el.href; - - if ($('#github-profile').length > 0) { - window.location = href; - return; - } - - var params = url.attr('path').split('/').filter(function(w) { - if (w.length) - return true; - return false; - }) - - if (params.length == 1) { - var username = params[0]; - - var spinner = new Spinner(spin_opts).spin(); - $('#github-link').append(spinner.el); - - require(["json!/github/" + username, "text!templates/github-view.html"], - function(github_data, github_view) { - if (github_data.error || github_data.length == 0) { - window.location = href; - return; - } - - var template = Handlebars.compile(github_view); - github_data.user.following_count = numberWithCommas(github_data.user.following_count) - github_data.user.followers_count = numberWithCommas(github_data.user.followers_count) - - $(template(github_data)).modal().on('hidden', function () { - $(this).remove(); - adjustSelection('home-link'); - }) - - spinner.stop(); - - }); - - return; - } - - window.location = href; -} diff --git a/syte/static/js/components/instagram.js b/syte/static/js/components/instagram.js deleted file mode 100644 index 3c6dc3a..0000000 --- a/syte/static/js/components/instagram.js +++ /dev/null @@ -1,66 +0,0 @@ - -function setupInstagram(el) { - var href = el.href; - - if($('#instagram-profile').length > 0) { - window.location = href; - return; - } - - var spinner = new Spinner(spin_opts).spin(); - $('#instagram-link').append(spinner.el); - - require(["json!/instagram/", - "text!templates/instagram-view.html", - "text!templates/instagram-view-more.html"], - function(instagram_data, instagram_view, instagram_view_more) { - if (instagram_data.media == 0){ - window.location = href; - return; - } - - var template = Handlebars.compile(instagram_view); - - var user_counts = instagram_data.user['counts']; - user_counts.media = numberWithCommas(user_counts.media); - user_counts.followed_by = numberWithCommas(user_counts.followed_by); - user_counts.follows = numberWithCommas(user_counts.follows); - - $.each(instagram_data.media, function(i, p) { - p.formated_date = moment.unix(parseInt(p.created_time)).fromNow(); - }); - - $(template(instagram_data)).modal().on('hidden', function () { - $(this).remove(); - adjustSelection('home-link'); - }) - - var more_template = Handlebars.compile(instagram_view_more); - - $('#load-more-pics').click(function(e) { - next = $(this).attr('data-control-next'); - - var spinner = new Spinner(spin_opts).spin(); - $('#load-more-pics').append(spinner.el); - - $.getJSON('/instagram/' + next, function(data) { - - $.each(data.media, function(i, p) { - p.formated_date = moment.unix(parseInt(p.created_time)).fromNow(); - }); - - $('.instagram .profile-shots').append(more_template(data)); - - if (data.pagination && data.pagination['next_max_id']) - $('#load-more-pics').attr('data-control-next', data.pagination['next_max_id']); - else - $('#load-more-pics').remove(); - - spinner.stop(); - }); - - }) - - spinner.stop(); - }); -} diff --git a/syte/static/js/components/links.js b/syte/static/js/components/links.js deleted file mode 100644 index 0671f6a..0000000 --- a/syte/static/js/components/links.js +++ /dev/null @@ -1,67 +0,0 @@ - -function setupLinks() { - - $('a').click(function(e) { - e.preventDefault(); - e.stopPropagation(); - - var url = $.url(this.href.replace('/#!', '')); - - if (this.id == 'home-link' && window.location.pathname == '/') { - $('#github-profile').remove(); - $('#dribbble-profile').remove(); - $('#twitter-profile').remove(); - $('#instagram-profile').remove(); - $('.modal-backdrop').remove(); - adjustSelection('home-link'); - } - else if(this.id == 'instagram-link' && instagram_integration_enabled) { - $('#github-profile').remove(); - $('#dribbble-profile').remove(); - $('#twitter-profile').remove(); - $('.modal-backdrop').remove(); - adjustSelection('instagram-link'); - - setupInstagram(this); - } - else if (twitter_integration_enabled && (url.attr('host') == 'twitter.com' || url.attr('host') == 'www.twitter.com')) { - - $('#github-profile').remove(); - $('#dribbble-profile').remove(); - $('#instagram-profile').remove(); - $('.modal-backdrop').remove(); - adjustSelection('twitter-link'); - - setupTwitter(url, this); - } - else if (github_integration_enabled && (url.attr('host') == 'github.com' || url.attr('host') == 'www.github.com')) { - - $('#twitter-profile').remove(); - $('#dribbble-profile').remove(); - $('#instagram-profile').remove(); - $('.modal-backdrop').remove(); - adjustSelection('github-link'); - - setupGithub(url, this); - } - else if (dribbble_integration_enabled && (url.attr('host') == 'dribbble.com' || url.attr('host') == 'www.dribbble.com')) { - - $('#twitter-profile').remove(); - $('#github-profile').remove(); - $('#instagram-profile').remove(); - $('.modal-backdrop').remove(); - adjustSelection('dribbble-link'); - - setupDribbble(url, this); - } - else { - window.location = this.href; - } - }); -} - -function adjustSelection(el) { - $('.main-nav').children('li').removeClass('sel'); - $('#' + el).parent().addClass('sel'); -} - diff --git a/syte/static/js/components/mobile.js b/syte/static/js/components/mobile.js deleted file mode 100644 index 4b530b3..0000000 --- a/syte/static/js/components/mobile.js +++ /dev/null @@ -1,15 +0,0 @@ - -var isMobileView = false; -var mediaQuery = window.matchMedia("(max-width:600px)"); - -if (mediaQuery.matches) { - isMobileView = true; -} - -$(function() { - $('#mobile-nav-btn').click(function() { - $('.main-section').toggleClass('nav-opened'); - }); -}); - - diff --git a/syte/static/js/components/twitter.js b/syte/static/js/components/twitter.js deleted file mode 100644 index 4a8bb30..0000000 --- a/syte/static/js/components/twitter.js +++ /dev/null @@ -1,82 +0,0 @@ - -function setupTwitter(url, el) { - var href = el.href; - - if ($('#twitter-profile').length > 0) { - window.location = href; - return; - } - - var params = url.attr('path').split('/').filter(function(w) { - if (w.length) - return true; - return false; - }) - - if (params.length == 1) { - var username = params[0]; - - var spinner = new Spinner(spin_opts).spin(); - $('#twitter-link').append(spinner.el); - - require(["json!/twitter/" + username, "text!templates/twitter-view.html"], - function(twitter_data, twitter_view) { - if (twitter_data.error || twitter_data.length == 0) { - window.location = href; - return; - } - - var template = Handlebars.compile(twitter_view); - - var tweets = []; - $.each(twitter_data, function(i, t) { - if (i > 3) - return; - - //'ddd MMM DD HH:mm:ss ZZ YYYY' - t.formated_date = moment(t.created_at).fromNow(); - t.f_text = twitterLinkify(t.text); - tweets.push(t); - }); - - var user = twitter_data[0].user; - user.statuses_count = numberWithCommas(user.statuses_count); - user.friends_count = numberWithCommas(user.friends_count); - user.followers_count = numberWithCommas(user.followers_count); - user.f_description = twitterLinkify(user.description); - - var template_data = { - "user": user, - "tweets": tweets - } - - $(template(template_data)).modal().on('hidden', function () { - $(this).remove(); - adjustSelection('home-link'); - }) - - spinner.stop(); - }); - - return; - } - - window.location = href; -} - -function twitterLinkify(text) { - text = text.replace(/(https?:\/\/\S+)/gi, function (s) { - return '<a href="' + s + '">' + s + '</a>'; - }); - - text = text.replace(/(^|) @(\w+)/gi, function (s) { - return '<a href="http://twitter.com/' + s + '">' + s + '</a>'; - }); - - text = text.replace(/(^|) #(\w+)/gi, function (s) { - return '<a href="http://search.twitter.com/search?q=' + s.replace(/#/,'%23') + '">' + s + '</a>'; - }); - - return text; -} - |