Creating a page at mozilla.org/webmaker #86

Merged
merged 4 commits into from May 10, 2012
View
0 apps/webmaker/__init__.py
No changes.
View
485 apps/webmaker/templates/webmaker/index.html
@@ -0,0 +1,485 @@
+{% extends "sand.html" %}
+
+{% block page_title %}Webmaker{% endblock %}
+{% block body_id %}webmaker{% endblock %}
+
+{% block site_header_nav %}
+ <nav id="nav-main" role="navigation">
+ <ul>
+ <li><b>Home</b></li>
+ </ul>
+ </nav>
+{% endblock %}
+
+{% block extrahead %}
+ {{ css('webmaker') }}
+{% endblock %}
+
+{% block content %}
+
+<hgroup class="container">
+ <h1 class="large">Mozilla Webmaker</h1>
+ <h2>We're building a generation of webmakers</h2>
+</hgroup>
+
+<section id="home-promo" class="pager pager-with-tabs pager-auto-rotate pager-no-history">
+
+ <div class="pager-content">
+
+ <div class="default-page pager-page" id="promo-maker-video">
+ <script>// <![CDATA[
+ document.getElementById('promo-maker-video').id = 'page-promo-maker-video';
+ // ]]></script>
+ <a href="" class="container">
+ <img src="{{ media('img/webmaker/carousel/instructors.jpg') }}" alt="">
+ <div>
+ <h3>Meet the Webmakers: "Instructors"</h3>
+ <p>We're building a generation of webmakers. Meet some of our instructors.</p>
+ </div>
+ </a>
+ </div>
+
+ <div id="promo-code-party" class="pager-page">
+ <script>// <![CDATA[
+ document.getElementById('promo-code-party').id = 'page-promo-code-party';
@fwenzel
fwenzel May 10, 2012

why?

Also: inline JS --

@fwenzel
fwenzel May 10, 2012

... if we keep adding inline JS blocks, mozilla.org will never be able to comply with CSP. Please don't do it :-/

@fwenzel
fwenzel May 10, 2012

:( still not good code

@jlongster
jlongster May 10, 2012

I'm not sure what to do here. This appears to be required by our very old pager library, and I suspect it would be a lot of work to figure out how everything works and separate it into another file.

At least it's not tons of js. When we CSP-ify the site, we'll have to fix the pager library anyway, and then we can remove these things across the entire site.

@fwenzel
fwenzel May 10, 2012

All right, considering it's the same code here and there, and we'll have to change that anyway at CSPifying time, keep it.

Just keep in mind that I'll r- new code with needless inline JS :)

@jlongster
jlongster May 10, 2012

Agreed! An unfortunate evil. We've still cleaned out 99% of the inline js from the old site!

+ // ]]></script>
+ <a href="#" class="container">
+ <img src="{{ media('img/webmaker/carousel/codeparty.jpg') }}" alt="">
+ <div>
+ <h3>Summer Code Party</h3>
+ <p>Meet, make, and share your creations with friends to learn some code this summer. »</p>
+ </div>
+ </a>
+ </div>
+
+ <div id="promo-popcorn" class="pager-page">
+ <script>// <![CDATA[
+ document.getElementById('promo-popcorn').id = 'page-promo-popcorn';
+ // ]]></script>
+ <a href="http://www.mozillapopcorn.org" class="container">
+ <img src="{{ media('img/webmaker/carousel/popcorn.jpg') }}" alt="">
+ <div>
+ <h3>Make video pop with Popcorn</h3>
+ <p>Popcorn is revolutionizing video on the web. It's free, open, and easy to use. Try it today. »</p>
+ </div>
+ </a>
+ </div>
+
+ <ul class="pager-tabs">
+ <li id="tab-maker-video"><a href="#p1"></a></li>
+ <li id="tab-code-party"><a href="#p2"></a></li>
+ <li id="tab-popcorn"><a href="#p3"></a></li>
+ </ul>
+
+ </div>
+</section>
+
+<section id="secondary" class="container">
+
+<div class="row">
+
+ <div class="span6">
+
+ <h3>Mozilla Webmaker</h3>
+
+ <p>We're building a generation of webmakers — moving millions of people from being users of the web to makers of the web. <a href="{{ url('mozorg.mission') }}">Our mission</a> is all about empowering users, and what better way is there to do that than to help them shape the web itself?</p>
+
+
+ <h3>Join the Summer Code Party</h3>
+
+ <p>This summer, we're inviting everyone to join us to meet up, make something cool, and learn how the code behind the web works. It's called the Summer Code Party, and it starts June 23.</p>
+
+ <p>Mozilla is joining with dozens of other organizations to make this happen. Want to make a prettier template for your blog? Or level up your latest YouTube video? Or just learn a bit of HTML? We'll have tools, tutorials, and activites to help you become a webmaker. Join the party here. [link]</p>
+
+ <h3>Tools for learning</h3>
+
+ <p>We're creating web-based apps that you can use to discover, remix, and create your own content online. Here's just a few that you can try today:</p>
+
+ <ul>
+ <li><a href="http://hackasaurus.org/">Hackasaurus</a>: Activate the X-ray Goggles and instantly reveal and remix any page on the web. Share your hacks with your friends.</li>
+ <li><a href="http://mozillapopcorn.org/">Popcorn</a>: Bring the web into online video. Launch the <a href="http://mozillapopcorn.org/popcorn-maker/">Popcorn Maker web app (beta)</a>, select your favourite video, and you can pull in tweets, maps, photos, and more — all in realtime.</li>
+ <li>Webmaker <b>(coming soon)</b>: Build a webpage from scratch, or try a pre-built template. See the code as you work, and learn as you make.</li>
+ </ul>
+
+ <h3>Get involved</h3>
+
+
+ <p>We need your help to make this dream a reality. Here's how you can help:</p>
+
+ <ul>
+ <li><a href="https://donate.mozilla.org/page/event/create/">Host a Summer Code Party in your town</a></li>
+ <li><a href="{{ url('mozorg.contribute') }}">Help us make great software</a></li>
+ <li><a href="https://donate.mozilla.org/join">Make a donation to support our work</a></li>
+ </ul>
+ </div>
+
+ <div class="span3 offset1">
+ <h3>Latest news</h3>
+ <p>Read all our news in our <a data-feed-list-num="3" href="http://planet.drumbeat.org/rss20.xml" id="feed_url">webmaker news feed</a></p>
+ <form action="https://donate.mozilla.org/page/s/collusion" method="post" class="box" id="updates">
+ <h3>Want to hear more?</h3>
+ <p class="intro">Get Mozilla updates:</p>
+
+ <div class="field" id="email-field">
+ <span id="email-wrapper"><input name="email" type="email" id="email" value="" placeholder="Your Email Address" required></span>
+ </div>
+
+ <div class="field" id="country-field">
+ <select id="country" name="country" required>
@jlongster
jlongster May 10, 2012

I think we hardcoded countries one other place on the site. We probably should abstract this out. Are you interested in doing that?

@fwenzel
fwenzel May 10, 2012

implementation hint: the bulk (or all?) of the actual data can come from product_details' region data.

@rossbruniges
rossbruniges May 10, 2012

Actually/unfortunately no - this list is taken from BSD (blue state digital - the CRM that the Mozilla Foundation uses) and uses different codes, countries than what we use.

@rossbruniges
rossbruniges May 10, 2012

Adding in as an include in an additional pull request...

@fwenzel
fwenzel May 10, 2012

awesome, thanks in advance. This should really be a dictionary with just the data that you use to build this :)

+ <option value=""></option>
+ <option value="AF">Afghanistan</option>
+ <option value="AL">Albania</option>
+ <option value="DZ">Algeria</option>
+
+ <option value="AS">American Samoa</option>
+ <option value="AD">Andorra</option>
+ <option value="AO">Angola</option>
+ <option value="AI">Anguilla</option>
+ <option value="AG">Antigua and Barbuda</option>
+ <option value="AR">Argentina</option>
+
+ <option value="AM">Armenia</option>
+ <option value="AW">Aruba</option>
+ <option value="AU">Australia</option>
+ <option value="AT">Austria</option>
+ <option value="AZ">Azerbaijan</option>
+ <option value="BS">Bahamas</option>
+
+ <option value="BH">Bahrain</option>
+ <option value="BD">Bangladesh</option>
+ <option value="BB">Barbados</option>
+ <option value="BY">Belarus</option>
+ <option value="BE">Belgium</option>
+ <option value="BZ">Belize</option>
+
+ <option value="BJ">Benin</option>
+ <option value="BM">Bermuda</option>
+ <option value="BT">Bhutan</option>
+ <option value="BO">Bolivia</option>
+ <option value="BA">Bosnia and Herzegovina</option>
+ <option value="BW">Botswana</option>
+
+ <option value="BR">Brazil</option>
+ <option value="VG">British Virgin Islands</option>
+ <option value="IO">British Indian Ocean Territory</option>
+ <option value="BN">Brunei</option>
+ <option value="BG">Bulgaria</option>
+ <option value="BF">Burkina Faso</option>
+
+ <option value="BI">Burundi</option>
+ <option value="KH">Cambodia</option>
+ <option value="CM">Cameroon</option>
+ <option value="CA">Canada</option>
+
+ <option value="CV">Cape Verde</option>
+ <option value="KY">Cayman Islands</option>
+
+ <option value="CF">Central African Republic</option>
+ <option value="TD">Chad</option>
+ <option value="CL">Chile</option>
+ <option value="CN">China</option>
+
+ <option value="CX">Christmas Island</option>
+ <option value="CO">Colombia</option>
+
+ <option value="KM">Comoros Islands</option>
+ <option value="CD">Congo, Democratic Republic of the</option>
+ <option value="CG">Congo, Republic of the</option>
+ <option value="CK">Cook Islands</option>
+
+ <option value="CR">Costa Rica</option>
+ <option value="CI">Cote D'ivoire</option>
+
+ <option value="HR">Croatia</option>
+ <option value="CU">Cuba</option>
+ <option value="CY">Cyprus</option>
+ <option value="CZ">Czech Republic</option>
+
+ <option value="DK">Denmark</option>
+ <option value="DJ">Djibouti</option>
+
+ <option value="DM">Dominica</option>
+ <option value="DO">Dominican Republic</option>
+ <option value="TP">East Timor</option>
+ <option value="EC">Ecuador</option>
+
+ <option value="EG">Egypt</option>
+ <option value="SV">El Salvador</option>
+
+ <option value="GQ">Equatorial Guinea</option>
+ <option value="ER">Eritrea</option>
+ <option value="EE">Estonia</option>
+ <option value="ET">Ethiopia</option>
+
+ <option value="FK">Falkland Islands (Malvinas)</option>
+ <option value="FO">Faroe Islands</option>
+
+ <option value="FJ">Fiji</option>
+ <option value="FI">Finland</option>
+ <option value="FR">France</option>
+ <option value="GF">French Guiana</option>
+
+ <option value="PF">French Polynesia</option>
+ <option value="TF">French Southern Territories</option>
+
+ <option value="GA">Gabon</option>
+ <option value="GM">Gambia</option>
+ <option value="GE">Georgia</option>
+ <option value="DE">Germany</option>
+
+ <option value="GH">Ghana</option>
+ <option value="GI">Gibraltar</option>
+
+ <option value="GR">Greece</option>
+ <option value="GL">Greenland</option>
+ <option value="GD">Grenada</option>
+ <option value="GP">Guadeloupe</option>
+
+ <option value="GU">Guam</option>
+ <option value="GT">Guatemala</option>
+
+ <option value="GN">Guinea</option>
+ <option value="GW">Guinea-Bissau</option>
+ <option value="GY">Guyana</option>
+ <option value="HT">Haiti</option>
+
+ <option value="VA">Holy See (Vatican City State)</option>
+ <option value="HN">Honduras</option>
+
+ <option value="HK">Hong Kong</option>
+ <option value="HU">Hungary</option>
+ <option value="IS">Iceland</option>
+ <option value="IN">India</option>
+
+ <option value="ID">Indonesia</option>
+ <option value="IR">Iran</option>
+
+ <option value="IQ">Iraq</option>
+ <option value="IE">Ireland</option>
+ <option value="IL">Israel</option>
+ <option value="IT">Italy</option>
+
+ <option value="JM">Jamaica</option>
+ <option value="JP">Japan</option>
+
+ <option value="JO">Jordan</option>
+ <option value="KZ">Kazakhstan</option>
+ <option value="KE">Kenya</option>
+ <option value="KI">Kiribati</option>
+
+ <option value="KR">South Korea</option>
+ <option value="XK">Kosovo</option>
+
+ <option value="KW">Kuwait</option>
+ <option value="KG">Kyrgyzstan</option>
+ <option value="LA">Laos</option>
+ <option value="LV">Latvia</option>
+
+ <option value="LB">Lebanon</option>
+ <option value="LS">Lesotho</option>
+
+ <option value="LR">Liberia</option>
+ <option value="LI">Liechtenstein</option>
+ <option value="LT">Lithuania</option>
+ <option value="LU">Luxembourg</option>
+
+ <option value="MO">Macau</option>
+ <option value="MK">Macedonia</option>
+
+ <option value="MG">Madagascar</option>
+ <option value="MW">Malawi</option>
+ <option value="MY">Malaysia</option>
+ <option value="MV">Maldives</option>
+
+ <option value="ML">Mali</option>
+ <option value="MT">Malta</option>
+
+ <option value="MH">Marshall Islands</option>
+ <option value="MQ">Martinique</option>
+ <option value="MR">Mauritania</option>
+ <option value="MU">Mauritius</option>
+
+ <option value="YT">Mayotte</option>
+ <option value="MX">Mexico</option>
+
+ <option value="FM">Micronesia</option>
+ <option value="MD">Moldova, Republic of</option>
+ <option value="MC">Monaco</option>
+ <option value="MN">Mongolia</option>
+
+ <option value="ME">Montenegro</option>
+ <option value="MS">Montserrat</option>
+
+ <option value="MA">Morocco</option>
+ <option value="MZ">Mozambique</option>
+ <option value="MM">Myanmar</option>
+ <option value="NA">Namibia</option>
+
+ <option value="NR">Nauru</option>
+ <option value="NP">Nepal</option>
+
+ <option value="NL">Netherlands</option>
+ <option value="AN">Netherlands Antilles</option>
+ <option value="NC">New Caledonia</option>
+ <option value="NZ">New Zealand</option>
+
+ <option value="NI">Nicaragua</option>
+ <option value="NE">Niger</option>
+
+ <option value="NG">Nigeria</option>
+ <option value="NU">Niue</option>
+ <option value="NF">Norfolk Island</option>
+ <option value="MP">Northern Mariana Islands</option>
+
+ <option value="NO">Norway</option>
+ <option value="OM">Oman</option>
+
+ <option value="PK">Pakistan</option>
+ <option value="PW">Palau</option>
+ <option value="PA">Panama</option>
+ <option value="PG">Papua New Guinea</option>
+
+ <option value="PY">Paraguay</option>
+ <option value="PE">Peru</option>
+
+ <option value="PH">Philippines</option>
+ <option value="PN">Pitcairn Island</option>
+ <option value="PL">Poland</option>
+ <option value="PT">Portugal</option>
+
+ <option value="PR">Puerto Rico</option>
+ <option value="QA">Qatar</option>
+
+ <option value="RE">Reunion</option>
+ <option value="RO">Romania</option>
+ <option value="RU">Russian Federation</option>
+ <option value="RW">Rwanda</option>
+
+ <option value="KN">Saint Kitts and Nevis</option>
+ <option value="LC">Saint Lucia</option>
+
+ <option value="VC">Saint Vincent and the Grenadines</option>
+ <option value="WS">Samoa</option>
+ <option value="SM">San Marino</option>
+ <option value="ST">Sao Tome and Principe</option>
+
+ <option value="SA">Saudi Arabia</option>
+ <option value="SN">Senegal</option>
+
+ <option value="RS">Serbia</option>
+ <option value="SC">Seychelles</option>
+ <option value="SL">Sierra Leone</option>
+ <option value="SG">Singapore</option>
+
+ <option value="SK">Slovakia</option>
+ <option value="SI">Slovenia</option>
+
+ <option value="SB">Solomon Islands</option>
+ <option value="SO">Somalia</option>
+ <option value="ZA">South Africa</option>
+ <option value="ES">Spain</option>
+
+ <option value="LK">Sri Lanka</option>
+ <option value="SH">St. Helena</option>
+
+ <option value="PM">St. Pierre and Miquelon</option>
+ <option value="SD">Sudan</option>
+ <option value="SR">Suriname</option>
+ <option value="SZ">Swaziland</option>
+
+ <option value="SE">Sweden</option>
+ <option value="CH">Switzerland</option>
+
+ <option value="SY">Syria</option>
+ <option value="TW">Taiwan</option>
+ <option value="TJ">Tajikistan</option>
+ <option value="TZ">Tanzania</option>
+
+ <option value="TH">Thailand</option>
+ <option value="TG">Togo</option>
+
+ <option value="TK">Tokelau</option>
+ <option value="TO">Tonga</option>
+ <option value="TT">Trinidad and Tobago</option>
+ <option value="TN">Tunisia</option>
+
+ <option value="TR">Turkey</option>
+ <option value="TM">Turkmenistan</option>
+
+ <option value="TC">Turks and Caicos Islands</option>
+ <option value="TV">Tuvalu</option>
+ <option value="UG">Uganda</option>
+ <option value="UA">Ukraine</option>
+ <option value="AE">United Arab Emirates</option>
+ <option value="GB">United Kingdom</option>
+ <option value="US" selected="selected">United States</option>
+ <option value="UY">Uruguay</option>
+ <option value="UZ">Uzbekistan</option>
+ <option value="VU">Vanuatu</option>
+ <option value="VE">Venezuela</option>
+ <option value="VN">Viet Nam</option>
+ <option value="VI">Virgin Islands (U.S.)</option>
+ <option value="WF">Wallis and Futuna Islands</option>
+ <option value="EH">Western Sahara</option>
+ <option value="YE">Yemen</option>
+ <option value="ZM">Zambia</option>
+ <option value="ZW">Zimbabwe</option>
+</select>
+ </div>
+
+ <div class="field" id="privacy-field">
+ <label for="privacy-check" id="privacy-check-label" class="">
+ <span class="input"><input type="checkbox" name="custom-824" id="privacy-check" value="1" required></span>
+
+ <span class="title">
+ I'm okay with you handling this info as you explain in
+ your <a href="{{ php_url('/privacy-policy.html') }}">Privacy
+ Policy</a>
+ </span>
+ </label>
+ </div>
+
+ <div class="field" id="submit-field">
+ <button type="submit" class="submit button-blue">Sign me up</button>
+ </div>
+ <p><small>We will only send you Mozilla-related information.</small></p>
+ <input type="hidden" name="submit" value="submit">
+ </form>
+
+ <h3>Find a project</h3>
+
+ <ul>
+ <li><a href="http://mozillapopcorn.org/">popcorn</a></li>
+ <li><a href="http://www.mozillaopennews.org/">opennews</a></li>
+ <li><a href="http://www.hackasaurus.org/">hackasaurus</a></li>
+ <li><a href="http://www.openbadges.org/">open badges</a></li>
+ <li><a href="https://mozillaignite.org">mozilla ignite</li>
+ <li><a href="http://explorecreateshare.org/">hiveNYC</a></li>
+ <li><a href="https://www.mozillafestival.org/">mozillafestival</a></li>
+ <li><a href="{{ url('collusion') }}">collusion</a></li>
+ </ul>
+
+ </div>
+
+ </div>
+
+</section>
+
+{% endblock %}
+
+{% block social %}
+ <nav class="span2">
+ <ul>
+ <li><a href="{{ url('mozorg.mission') }}">Learn about Mozilla's mission</a></li>
+ <li><a href="https://donate.mozilla.org/join/">Join Mozilla</a></li>
+ <li><a href="http://www.facebook.com/mozilla/">Like us on Facebook</a></li>
+ <li><a href="http://www.twitter.com/mozilla/">Follow us on Twitter</a></li>
+ </ul>
+ </nav>
+{% endblock %}
+
+{% block js %}
+<script type="text/javascript" src="https://www.google.com/jsapi"></script>
+{{ js('webmaker') }}
+{{ js('pager') }}
+{% endblock %}
View
6 apps/webmaker/urls.py
@@ -0,0 +1,6 @@
+from django.conf.urls.defaults import *
+from mozorg.util import page
+
+urlpatterns = patterns('',
+ page('', 'webmaker/index.html')
+)
View
1 media/css/collusion.less
@@ -221,4 +221,3 @@ g.node.unrelated-domain circle.tracker {
g.node.unrelated-domain circle.round-border {
fill: #e0e0e0;
}
-
View
174 media/css/webmaker.less
@@ -0,0 +1,174 @@
+@import "sandstone/variables.less";
+@import "sandstone/mixins.less";
+
+
+hgroup {
+ text-align: center;
+ padding-top: @baseLine * 2;
+ padding-bottom: @baseLine * 2;
+
+ h2 {
+ font-size: 32px;
+ }
+}
+
+/* {{{ Main Promos */
+
+.pager-page {
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ display: none;
+ a {
+ display: block;
+ height: 265px;
+ padding: 0;
+ position: relative;
+ width: 896px + 48px + 48px;
+ border-bottom: 1px solid #ddd;
+ &:hover,
+ &:active {
+ text-decoration: none;
+ }
+ }
+ div {
+ .span(3);
+ margin-left: 0;
+ padding: 0 0 @baseLine 48px;
+ position: relative;
+ }
+ h3 {
+ padding-top: @baseLine * 2;
+ margin-bottom: @baseLine;
+ font-size: 32px;
+ letter-spacing: -1px;
+ color: #fff;
+ text-shadow: none;
+ }
+ p {
+ color: #fff;
+ text-shadow: none;
+ margin: 0;
+ }
+ img {
+ display: block;
+ background: @textColorPrimary;
+ width: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+}
+
+.default-page {
+ display: block;
+}
+
+.pager-tabs {
+ text-align: center;
+ li {
+ display: inline;
+ list-style-type: none;
+ margin: 0;
+ a {
+ color: rgba(0,0,0,0.2);
+ .inline-block;
+ padding: 6px;
+ &:hover,
+ &:active {
+ text-decoration: none;
+ color: @textColorSecondary;
+ }
+ }
+ }
+}
+
+.pager-selected-promo-maker-video li#tab-maker-video a,
+.pager-selected-promo-code-party li#tab-code-party a,
+.pager-selected-promo-popcorn li#tab-popcorn a {
+ color: @textColorSecondary;
+}
+
+/* }}} */
+
+#updates {
+ margin-bottom: @baseLine * 2;
+ p { margin: 0; }
+ .field {
+ .clearfix;
+ padding: @baseLine / 4 0;
+
+ input[type=email] {
+ width: (@gridColumnWidth * 3) + (@gridGutterWidth * 2) - 18px;
+ }
+
+ .title {
+ font-size: 14px;
+ }
+
+ small {
+ color: @textColorTertiary;
+ }
+ }
+}
+
+/* {{{ Tablet Layout: 768px */
+/*
+@media only screen and (min-width: 768px) and (max-width: 991px) {
+
+ .pager-page {
+ a {
+ width: 712px + 24px + 24px;
+ height: 203px;
+ }
+ h3 {
+ font-size: 28px;
+ letter-spacing: -1px;
+ padding-top: @baseLine;
+ }
+ }
+
+}
+
+*/
+/* }}} */
+/* {{{ Wide Mobile Layout: 480px */
+/*
+
+@media only screen and (max-width: 767px) {
+
+ .pager-page {
+ a {
+ width: auto;
+ height: auto;
+ img {
+ position: static;
+ }
+ }
+ h3 {
+ font-size: 28px;
+ letter-spacing: -1px;
+ padding-top: @baseLine;
+ }
+ div {
+ padding-left: 24px;
+ background: #fff;
+ width: auto;
+ float: none;
+ }
+ h3 {
+ margin-bottom: @baseLine / 3;
+ color: @textColorPrimary;
+ }
+ p {
+ color: @textColorPrimary;
+ }
+ }
+
+ .pager-tabs li a {
+ padding: 12px;
+ font-size: 28px;
+ }
+
+}
+*/
+/* }}} */
View
BIN media/img/webmaker/carousel/codeparty.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/img/webmaker/carousel/instructors.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN media/img/webmaker/carousel/popcorn.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
32 media/js/webmaker/feeds.js
@@ -0,0 +1,32 @@
+google.load("feeds", "1");
+
+var webmaker = window.webmaker || {};
+
+webmaker = function() {
+ var init = function() {
+ var feed_url = $("#feed_url"),
+ feed = new google.feeds.Feed(feed_url.attr('href')),
+ feed_num = feed_url.attr('data-feed-list-num');
+ feed.setNumEntries(feed_num);
+ feed.load(function(result) {
+ if (!result.error) {
+ var feed_list = "<ul>";
+ for (var i = 0; i < result.feed.entries.length; i++) {
+ var entry = result.feed.entries[i],
+ chunks = entry.title.split(':'),
+ name = chunks.shift();
+ feed_list += "<li><a href='" + entry.link + "'>";
+ feed_list += chunks.toString() + "</a> by " + name.toString();
+ feed_list += "</li>";
+ }
+ feed_list += "</ul>";
+ $(feed_url).parent().before($(feed_list));
+ }
+ });
+ };
+ return {
+ 'init': init
+ };
+}();
+
+google.setOnLoadCallback(webmaker.init);
View
9 settings/base.py
@@ -62,6 +62,9 @@ def JINJA_CONFIG():
'b2g': (
'css/b2g.less',
),
+ 'webmaker': (
+ 'css/webmaker.less',
+ ),
'collusion': (
'css/collusion.less',
),
@@ -160,7 +163,10 @@ def JINJA_CONFIG():
},
'js': {
'site': (
- 'js/site.js', # this is automatically included on every page
+ 'js/site.js', # this is automatically included on every page
+ ),
+ 'webmaker': (
+ 'js/webmaker/feeds.js',
),
'collusion': (
'js/collusion/d3.layout.js',
@@ -316,6 +322,7 @@ def JINJA_CONFIG():
# Local apps
'b2g',
+ 'webmaker',
'collusion',
'firefox',
'marketplace',
View
1 urls.py
@@ -11,6 +11,7 @@
urlpatterns = patterns('',
# Main pages
(r'^b2g/', include('b2g.urls')),
+ (r'^webmaker/', include('webmaker.urls')),
(r'^collusion/', include('collusion.urls')),
(r'^apps/', include('marketplace.urls')),
(r'^persona/', include('persona.urls')),